Indices

10/12/2004 - 15:36 por Carlo Sorrel | Informe spam
Estimados, me podrian indicar la diferencia entre el dbcc Indexdefrag y el
dbcc dbreindex???, y cual es mejor..., cuales son sus ventajas y
desventajas
Gracias.

Atte.,
Carlo Sorrel
 

Leer las respuestas

#1 Maxi
10/12/2004 - 15:46 | Informe spam
Hola, no son ni uno mejor que otro, ambos hacen cosas distintas: Te paso lo
que dicen tus manuales on line, esta bastante clarito :)

DBCC INDEXDEFRAG
Desfragmenta los índices agrupados y secundarios de la tabla o la vista
especificada.

Sintaxis
DBCC INDEXDEFRAG
( { database_name | database_id | 0 }
, { table_name | table_id | 'view_name' | view_id }
, { index_name | index_id }
) [ WITH NO_INFOMSGS ]

Argumentos
database_name | database_id | 0

Es la base de datos cuyo índice se desfragmenta. Los nombres de las bases de
datos se deben ajustar a las reglas para los identificadores. Para obtener
más información, consulte Utilizar identificadores. Si se especifica 0, se
utiliza la base de datos actual.

table_name | table_id | 'view_name' | view_id

Es la tabla o la vista cuyo índice se desfragmenta. Los nombres de tablas y
vistas se deben ajustar a las reglas de los identificadores.

index_name | index_id

Es el índice que se va a desfragmentar. Los nombres de los índices se deben
ajustar a las reglas de los identificadores.

WITH NO_INFOMSGS

Suprime todos los mensajes informativos (con niveles de gravedad entre 0 y
10).

Observaciones
DBCC INDEXDEFRAG puede desfragmentar índices agrupados y no agrupados en
tablas y vistas. DBCC INDEXDEFRAG desfragmenta el nivel hoja de un índice
para que el orden físico de las páginas coincida con el orden lógico de
izquierda a derecha de los nodos hoja, lo que mejora el rendimiento de
recorrido del índice.

DBCC INDEXDEFRAG también compacta las páginas de un índice, teniendo en
cuenta el FILLFACTOR especificado cuando se creó el índice. Las páginas
vacías creadas como resultado de esta compactación se quitarán. Para obtener
más información acerca de FILLFACTOR, consulte CREATE INDEX.

Si un índice abarca más de un archivo, DBCC INDEXDEFRAG desfragmenta los
archivos de uno en uno. Las páginas no se migran entre archivos.

Cada cinco minutos, DBCC INDEXDEFRAG informará al usuario del porcentaje
estimado completado. DBCC INDEXDEFRAG puede terminarse en cualquier momento
del proceso y se mantiene el trabajo finalizado.

A diferencia de DBCC DBREINDEX (o la operación de generación del índice en
general), DBCC INDEXDEFRAG es una operación en línea. No mantiene bloqueos
durante mucho tiempo y, por ello, no bloquea las consultas o las
actualizaciones en ejecución. Se puede tardar menos en desfragmentar un
índice relativamente poco fragmentado que en generar un índice nuevo porque
el tiempo de desfragmentación está relacionado con el volumen de la
fragmentación. Un índice muy fragmentado puede tardar mucho más en
desfragmentarse que en volver a generarse. Además, la desfragmentación
siempre se registra, sin tener en cuenta la configuración del modelo de
recuperación de la base de datos (consulte ALTER DATABASE). La
desfragmentación de un índice muy fragmentado puede generar más información
en el registro que una creación de índice registrada. No obstante, la
desfragmentación se realiza como una serie de transacciones cortas y, por
tanto, no requiere un gran registro si se realizan con frecuencia copias de
seguridad del registro o si la configuración del modelo de recuperación es
SIMPLE.

Además, DBCC INDEXDEFRAG no le ayudará si se intercalan dos índice en el
disco, porque INDEXDEFRAG coloca las páginas en su lugar. Para mejorar la
agrupación de páginas, vuelva a generar el índice.

DBCC INDEXDEFRAG no está aceptado para ser utilizado en las tablas del
sistema.

Conjuntos de resultados
DBCC INDEXDEFRAG devuelve este conjunto de resultados si no se especifica la
opción WITH NO_INFOMSGS (los valores pueden variar):

Pages Scanned Pages Moved Pages Removed
359 346 8

(1 row(s) affected)

DBCC execution completed. If DBCC printed error messages, contact your
system administrator.
Permisos
De forma predeterminada, tienen derechos de ejecución de DBCC DBREINDEX los
miembros de la función fija de servidor sysadmin y las funciones fijas de
base de datos db_owner y db_ddladmin y el propietario de la tabla, y no se
pueden transferir.

Ejemplos
DBCC INDEXDEFRAG (Northwind, Orders, CustomersOrders)
GO
ÛCC DBREINDEXRegenera uno o varios índices de una tabla de
la base de datos especificada.SintaxisDBCC DBREINDEX ( [
'database.owner.table_name' [ , index_name
[ , fillfactor ] ] ] ) [ WITH NO_INFOMSGS ]
Argumentos'database.owner.table_name'Es el nombre de la tabla en la se van a
regenerar los índices especificados. Los nombres de la base de datos, el
propietario y la tabla se deben ajustar a las reglas para los
identificadores. Para obtener más información, consulte Utilizar
identificadores. Si se especifican las partes baseDatos o propietario, todo
el argumento baseDatos.propietario.nombreTabla tiene que estar entre
comillas sencillas ('). Las comillas simples no son necesarias si sólo se
especifica table_name.index_nameEs el nombre del índice que se va a
regenerar. Los nombres de los índices se deben ajustar a las reglas de los
identificadores. Si no se especifica index_name o se especifica como ' ', se
vuelven a generar todos los índices de la tabla.fillfactorEs el porcentaje
de espacio de cada página de índice que se va a utilizar para almacenar
datos cuando se cree el índice. fillfactor sustituye al factor de relleno
original y se convierte en el nuevo valor predeterminado para el índice y
para cualquier índice no agrupado que se vuelva a generar como consecuencia
de que se vuelva a crear un índice agrupado. Cuando fillfactor es 0, DBCC
DBREINDEX utiliza el valor fillfactor original especificado cuando se creó
el índice.WITH NO_INFOMSGSSuprime todos los mensajes informativos (con
niveles de gravedad entre 0 y 10).ObservacionesDBCC DBREINDEX regenera un
índice de una tabla o todos los índices definidos de una tabla. Al permitir
que los índices se vuelvan a generar dinámicamente, los índices que
implementen restricciones PRIMARY KEY o UNIQUE se pueden regenerar sin tener
que quitar y volver a crear las restricciones. Esto significa que un índice
se puede regenerar sin conocer la estructura o las restricciones de la
tabla, lo que podría ocurrir después de una carga masiva de datos en la
tabla. Si se especifica index_name o fillfactor, también hay que especificar
todos los parámetros precedentes.DBCC DBREINDEX puede regenerar todos los
índices de una tabla con una instrucción, lo que es más sencillo que
codificar varias instrucciones DROP INDEX y CREATE INDEX. Como todo el
trabajo se hace con una instrucción, DBCC DBREINDEX es, automáticamente, una
acción atómica, mientras que, para ser atómicas, las instrucciones DROP
INDEX y CREATE INDEX tendrían que formar parte de una transacción. Además,
con DBCC DBREINDEX se pueden aprovechar más optimizaciones que con las
instrucciones DROP INDEX y CREATE INDEX individuales.DBCC DBREINDEX no está
aceptado para ser utilizado en las tablas del sistema. Conjuntos de
resultadosSe especifiquen o no opciones (excepto la opción NO_INFOMSGS; sí
hay que especificar el nombre de la tabla), DBCC DBREINDEX devuelve este
conjunto de resultados; este ejemplo utiliza la tabla authors de la base de
datos pubs (los valores pueden variar):Index (ID = 1) is being rebuilt.
Index (ID = 2) is being rebuilt.
DBCC execution completed. If DBCC printed error messages, contact your
system administrator.
Si se especifica la opción NO_INFOMSGS, DBCC DBREINDEX devuelve este
conjunto de resultados (mensaje):DBCC execution completed. If DBCC printed
error messages, contact your system administrator.
PermisosDe forma predeterminada, tienen derechos de ejecución de DBCC
DBREINDEX los miembros de la función fija de servidor sysadmin y de las
funciones fijas de base de datos db_owner y db_ddladmin y el propietario de
la tabla, y no se pueden transferir.EjemplosA. Reconstruir un índiceEn este
ejemplo se vuelve a generar el índice agrupado au_nmind, con un factor de
relleno de 80, de la tabla authors de la base de datos pubs.DBCC DBREINDEX
('pubs.dbo.authors', UPKCL_auidind, 80)
B. Reconstruir todos los índicesEn este ejemplo se vuelven a generar todos
los índices de la tabla authors con un factor de relleno de 70.DBCC
DBREINDEX (authors, '', 70)


Salu2
Maxi


"Carlo Sorrel" escribió en el mensaje
news:
Estimados, me podrian indicar la diferencia entre el dbcc Indexdefrag y el
dbcc dbreindex???, y cual es mejor..., cuales son sus ventajas y
desventajas
Gracias.

Atte.,
Carlo Sorrel


Preguntas similares