DBCC DBREINDEX o Mantenimiento?

18/07/2006 - 16:57 por msnews.microsoft.com | Informe spam
Hola gente, una pregunta el mantenimiento que hace SQL 2000, que ejecuta
sobre los indices?

les pregunto, porque en base a unos errores que nos estan dando sobre los
indices de algunas tablas, y que los estamos resolviendo ejecutando el
CREATE INDEX WITH DROP (el query que muestra cuando se edita el indice en el
SQL), estamos viendo de ejecutar esos query, una vez a la semana o mas veces
sobre las tablas en donde nos dan los errores.
el tema es que todos los fines de semana, se ejecuta el mantenimiento de la
base, la pregunta que esta haciendo ese mantenimiento? los esta eliminado o
los esta reindexando como lo hace el comando DBCC DBREINDEX?

saludos

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
18/07/2006 - 17:22 | Informe spam
msnews.microsoft.com,

Son equivalentes. el comando "DBCC DBREINDEX" equivale a eliminar (drop) y
crear (create) los indices, solo que este lo hace automaticamente sin
necesidad de darle el nombre del indice y/o las columnas que forman parte de
la llave.

Cual es el error que estas reciviendo?


AMB


"msnews.microsoft.com" wrote:

Hola gente, una pregunta el mantenimiento que hace SQL 2000, que ejecuta
sobre los indices?

les pregunto, porque en base a unos errores que nos estan dando sobre los
indices de algunas tablas, y que los estamos resolviendo ejecutando el
CREATE INDEX WITH DROP (el query que muestra cuando se edita el indice en el
SQL), estamos viendo de ejecutar esos query, una vez a la semana o mas veces
sobre las tablas en donde nos dan los errores.
el tema es que todos los fines de semana, se ejecuta el mantenimiento de la
base, la pregunta que esta haciendo ese mantenimiento? los esta eliminado o
los esta reindexando como lo hace el comando DBCC DBREINDEX?

saludos



Respuesta Responder a este mensaje
#2 msnews.microsoft.com
18/07/2006 - 17:35 | Informe spam
ok, entonces en lugar de ejecutar en cada indice puntual, le hago un DBCC
DBREINDEX (tabla) y con eso estaria eliminando y generando todos los indices
de esas tablas. ahora es lo mismo que hace el mantenimeinto del SQL?

los errores que nos dan son esto:

DESCRIPTION: Error: 8908, Severity: 22, State: 6
Table error: Database ID 7, object ID 1466070792, index ID 0. Chain linkage
mismatch. (1:1563159)->next = (1:1563160), but (1:1563160)->prev =
(1:2358456).

DESCRIPTION: Error: 644, Severity: 21, State: 5
Could not find the index entry for RID
'36e24bf412030000020010001600434f4f434249444d' in index page (1:500448),
index ID 4, database 'Empresa'.

DESCRIPTION: Error: 605, Severity: 21, State: 1
Attempt to fetch logical page (1:283715) in database 'Empresa' belongs to
object 'IGRMVI', not to object 'CORMVI'.

al hacer ese CREATE INDEX WITH DROP deja de dar el error y el reporte o
transaccion funciona OK!!!.

saludos



"Alejandro Mesa" escribió en el
mensaje news:
msnews.microsoft.com,

Son equivalentes. el comando "DBCC DBREINDEX" equivale a eliminar (drop) y
crear (create) los indices, solo que este lo hace automaticamente sin
necesidad de darle el nombre del indice y/o las columnas que forman parte
de
la llave.

Cual es el error que estas reciviendo?


AMB


"msnews.microsoft.com" wrote:

Hola gente, una pregunta el mantenimiento que hace SQL 2000, que ejecuta
sobre los indices?

les pregunto, porque en base a unos errores que nos estan dando sobre los
indices de algunas tablas, y que los estamos resolviendo ejecutando el
CREATE INDEX WITH DROP (el query que muestra cuando se edita el indice en
e l
SQL), estamos viendo de ejecutar esos query, una vez a la semana o mas
veces
sobre las tablas en donde nos dan los errores.
el tema es que todos los fines de semana, se ejecuta el mantenimiento de
la
base, la pregunta que esta haciendo ese mantenimiento? los esta eliminado
o
los esta reindexando como lo hace el comando DBCC DBREINDEX?

saludos



Respuesta Responder a este mensaje
#3 Alejandro Mesa
18/07/2006 - 18:58 | Informe spam
msnews.microsoft.com,

Puede que estes teniendo problemas con el hardware, chequeastes tambien el
error-log file del sistema?

http://doc.ddart.net/mssql/sql2000/...2_2coj.htm


AMB


"msnews.microsoft.com" wrote:

ok, entonces en lugar de ejecutar en cada indice puntual, le hago un DBCC
DBREINDEX (tabla) y con eso estaria eliminando y generando todos los indices
de esas tablas. ahora es lo mismo que hace el mantenimeinto del SQL?

los errores que nos dan son esto:

DESCRIPTION: Error: 8908, Severity: 22, State: 6
Table error: Database ID 7, object ID 1466070792, index ID 0. Chain linkage
mismatch. (1:1563159)->next = (1:1563160), but (1:1563160)->prev =
(1:2358456).

DESCRIPTION: Error: 644, Severity: 21, State: 5
Could not find the index entry for RID
'36e24bf412030000020010001600434f4f434249444d' in index page (1:500448),
index ID 4, database 'Empresa'.

DESCRIPTION: Error: 605, Severity: 21, State: 1
Attempt to fetch logical page (1:283715) in database 'Empresa' belongs to
object 'IGRMVI', not to object 'CORMVI'.

al hacer ese CREATE INDEX WITH DROP deja de dar el error y el reporte o
transaccion funciona OK!!!.

saludos



"Alejandro Mesa" escribió en el
mensaje news:
> msnews.microsoft.com,
>
> Son equivalentes. el comando "DBCC DBREINDEX" equivale a eliminar (drop) y
> crear (create) los indices, solo que este lo hace automaticamente sin
> necesidad de darle el nombre del indice y/o las columnas que forman parte
> de
> la llave.
>
> Cual es el error que estas reciviendo?
>
>
> AMB
>
>
> "msnews.microsoft.com" wrote:
>
>> Hola gente, una pregunta el mantenimiento que hace SQL 2000, que ejecuta
>> sobre los indices?
>>
>> les pregunto, porque en base a unos errores que nos estan dando sobre los
>> indices de algunas tablas, y que los estamos resolviendo ejecutando el
>> CREATE INDEX WITH DROP (el query que muestra cuando se edita el indice en
>> e l
>> SQL), estamos viendo de ejecutar esos query, una vez a la semana o mas
>> veces
>> sobre las tablas en donde nos dan los errores.
>> el tema es que todos los fines de semana, se ejecuta el mantenimiento de
>> la
>> base, la pregunta que esta haciendo ese mantenimiento? los esta eliminado
>> o
>> los esta reindexando como lo hace el comando DBCC DBREINDEX?
>>
>> saludos
>>
>>
>>



Respuesta Responder a este mensaje
#4 msnews.microsoft.com
18/07/2006 - 19:11 | Informe spam
si eso ya lo revisamos y esta ok, no tengo errores reportados y ya le
hicimos un diagnostico con los tecnicos de HP y todo el hardware esta ok.

saludos

"Alejandro Mesa" escribió en el
mensaje news:
msnews.microsoft.com,

Puede que estes teniendo problemas con el hardware, chequeastes tambien el
error-log file del sistema?

http://doc.ddart.net/mssql/sql2000/...2_2coj.htm


AMB


"msnews.microsoft.com" wrote:

ok, entonces en lugar de ejecutar en cada indice puntual, le hago un DBCC
DBREINDEX (tabla) y con eso estaria eliminando y generando todos los
indices
de esas tablas. ahora es lo mismo que hace el mantenimeinto del SQL?

los errores que nos dan son esto:

DESCRIPTION: Error: 8908, Severity: 22, State: 6
Table error: Database ID 7, object ID 1466070792, index ID 0. Chain
linkage
mismatch. (1:1563159)->next = (1:1563160), but (1:1563160)->prev >> (1:2358456).

DESCRIPTION: Error: 644, Severity: 21, State: 5
Could not find the index entry for RID
'36e24bf412030000020010001600434f4f434249444d' in index page (1:500448),
index ID 4, database 'Empresa'.

DESCRIPTION: Error: 605, Severity: 21, State: 1
Attempt to fetch logical page (1:283715) in database 'Empresa' belongs to
object 'IGRMVI', not to object 'CORMVI'.

al hacer ese CREATE INDEX WITH DROP deja de dar el error y el reporte o
transaccion funciona OK!!!.

saludos



"Alejandro Mesa" escribió en el
mensaje news:
> msnews.microsoft.com,
>
> Son equivalentes. el comando "DBCC DBREINDEX" equivale a eliminar
> (drop) y
> crear (create) los indices, solo que este lo hace automaticamente sin
> necesidad de darle el nombre del indice y/o las columnas que forman
> parte
> de
> la llave.
>
> Cual es el error que estas reciviendo?
>
>
> AMB
>
>
> "msnews.microsoft.com" wrote:
>
>> Hola gente, una pregunta el mantenimiento que hace SQL 2000, que
>> ejecuta
>> sobre los indices?
>>
>> les pregunto, porque en base a unos errores que nos estan dando sobre
>> los
>> indices de algunas tablas, y que los estamos resolviendo ejecutando
>> el
>> CREATE INDEX WITH DROP (el query que muestra cuando se edita el indice
>> en
>> e l
>> SQL), estamos viendo de ejecutar esos query, una vez a la semana o mas
>> veces
>> sobre las tablas en donde nos dan los errores.
>> el tema es que todos los fines de semana, se ejecuta el mantenimiento
>> de
>> la
>> base, la pregunta que esta haciendo ese mantenimiento? los esta
>> eliminado
>> o
>> los esta reindexando como lo hace el comando DBCC DBREINDEX?
>>
>> saludos
>>
>>
>>



Respuesta Responder a este mensaje
#5 Alejandro Mesa
18/07/2006 - 20:16 | Informe spam
msnews.microsoft.com,

Este error me llama la atencion porque indica que la tabla no tiene indice
clustered.

>> DESCRIPTION: Error: 8908, Severity: 22, State: 6
>> Table error: Database ID 7, object ID 1466070792, index ID 0. Chain
>> linkage
>> mismatch. (1:1563159)->next = (1:1563160), but (1:1563160)->prev > >> (1:2358456).



Es buena practica que cada tabla tenga su indice clustered, principalmente
para poder defragmentar la tabla en caso de que esta se fragmente (sin indice
clustered no se puede defragmentar al menos que recrees la tabla) y para
evitar forwarded pointers (no se la traduccion pero tiene que ver con que
cuando se genera una particion de una pagina, si no existe indice clustered
entonces sql server usa el row id como bookmark en los indices no clustered y
este bookmark debe ser actualizado cuando las filas son movidas de una pagina
a otra. Esta operacion consume tiempo por lo que SQL Server a vces decide
usar un puntero que apunta a la nueva direccion a donde se movio la fila).
Debes analizar cuales son la columnas candidatas para conformar la llave de
ese indice y de no existir alguna, puedes usar una columna con propiedad
identity.

Cluster That Index!
http://www.quest-pipelines.com/news...1103_B.htm


AMB

"msnews.microsoft.com" wrote:

si eso ya lo revisamos y esta ok, no tengo errores reportados y ya le
hicimos un diagnostico con los tecnicos de HP y todo el hardware esta ok.

saludos

"Alejandro Mesa" escribió en el
mensaje news:
> msnews.microsoft.com,
>
> Puede que estes teniendo problemas con el hardware, chequeastes tambien el
> error-log file del sistema?
>
> http://doc.ddart.net/mssql/sql2000/...2_2coj.htm
>
>
> AMB
>
>
> "msnews.microsoft.com" wrote:
>
>> ok, entonces en lugar de ejecutar en cada indice puntual, le hago un DBCC
>> DBREINDEX (tabla) y con eso estaria eliminando y generando todos los
>> indices
>> de esas tablas. ahora es lo mismo que hace el mantenimeinto del SQL?
>>
>> los errores que nos dan son esto:
>>
>> DESCRIPTION: Error: 8908, Severity: 22, State: 6
>> Table error: Database ID 7, object ID 1466070792, index ID 0. Chain
>> linkage
>> mismatch. (1:1563159)->next = (1:1563160), but (1:1563160)->prev > >> (1:2358456).
>>
>> DESCRIPTION: Error: 644, Severity: 21, State: 5
>> Could not find the index entry for RID
>> '36e24bf412030000020010001600434f4f434249444d' in index page (1:500448),
>> index ID 4, database 'Empresa'.
>>
>> DESCRIPTION: Error: 605, Severity: 21, State: 1
>> Attempt to fetch logical page (1:283715) in database 'Empresa' belongs to
>> object 'IGRMVI', not to object 'CORMVI'.
>>
>> al hacer ese CREATE INDEX WITH DROP deja de dar el error y el reporte o
>> transaccion funciona OK!!!.
>>
>> saludos
>>
>>
>>
>> "Alejandro Mesa" escribió en el
>> mensaje news:
>> > msnews.microsoft.com,
>> >
>> > Son equivalentes. el comando "DBCC DBREINDEX" equivale a eliminar
>> > (drop) y
>> > crear (create) los indices, solo que este lo hace automaticamente sin
>> > necesidad de darle el nombre del indice y/o las columnas que forman
>> > parte
>> > de
>> > la llave.
>> >
>> > Cual es el error que estas reciviendo?
>> >
>> >
>> > AMB
>> >
>> >
>> > "msnews.microsoft.com" wrote:
>> >
>> >> Hola gente, una pregunta el mantenimiento que hace SQL 2000, que
>> >> ejecuta
>> >> sobre los indices?
>> >>
>> >> les pregunto, porque en base a unos errores que nos estan dando sobre
>> >> los
>> >> indices de algunas tablas, y que los estamos resolviendo ejecutando
>> >> el
>> >> CREATE INDEX WITH DROP (el query que muestra cuando se edita el indice
>> >> en
>> >> e l
>> >> SQL), estamos viendo de ejecutar esos query, una vez a la semana o mas
>> >> veces
>> >> sobre las tablas en donde nos dan los errores.
>> >> el tema es que todos los fines de semana, se ejecuta el mantenimiento
>> >> de
>> >> la
>> >> base, la pregunta que esta haciendo ese mantenimiento? los esta
>> >> eliminado
>> >> o
>> >> los esta reindexando como lo hace el comando DBCC DBREINDEX?
>> >>
>> >> saludos
>> >>
>> >>
>> >>
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida