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

#6 msnews.microsoft.com
18/07/2006 - 21:11 | Informe spam
ok, ahora veo el link.
Las tablas tienen indices Clustered y nonClustered.

saludos

"Alejandro Mesa" escribió en el
mensaje news:
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
>> >>
>> >>
>> >>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida