Reconstruir indices en SQL

07/02/2006 - 04:34 por Raul | Informe spam
Es necesario reconstruir indices en SQL ?

Como se le hace ?

Thanks a lot.

Raul

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
07/02/2006 - 12:05 | Informe spam
DBCC DBREINDEX(nombretabla, nombreindice, factorrelleno)
_________________________________________________

DBCC DBREINDEX
Regenera uno o varios índices de una tabla de la base de datos especificada
[...] DBCC 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
[...] 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

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#2 Miguel Egea
07/02/2006 - 15:06 | Informe spam
En SQL Server 2005 ya hay una nueva sintaxis, del estiolo ALTER INDEX xxx ON
ttt REBUILD y en según que versiones peremite que esta operación se haga
on-line, es decir sin bloquear a ninguno de los usuarios.


Miguel Egea
Visita mi web http://www.portalsql.com
SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com
"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"

"Rubén Vigón" wrote in message
news:%
DBCC DBREINDEX(nombretabla, nombreindice, factorrelleno)
_________________________________________________

DBCC DBREINDEX
Regenera uno o varios índices de una tabla de la base de datos especificada
[...] DBCC 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
[...] 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

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#3 Guillermo Roldan
07/02/2006 - 16:00 | Informe spam
Aunque es otro tema, otra cosa que te puede interesar el defragmentar el
disco duro, en principio, con los servicios de SQL Server parados (sino, el
espacio alocado por los ficheros de SQL Server, es decir, "to lo gordo",
imagino que no lo podrá defragmentar al estar siendo accedido por el servicio
SQL Server).

En un cliente, hace poco, después de re-formatear el volumen del cluster que
contenía el SQL Server, disminuimos el tiempo de las copias de seguridad de 6
horas a tan sólo 1 hora (hablo de un cluster W2K con más de 100GB de
datos)... y los nodos del cluster ni se tocaron !!

Esto también depende de cada situación, pero en el caso que te comento,
después de dos años, con decenas de bases de datos que crecen y/o se reducen
en ocasiones, todo el trajín de los ficheros de bakcup (que si creo un
fichero para cada BBDD más los ficheros de los backups del LOG, que si borro
versiones antiguas, etc.), ficheros de log de cargas y tareas planificadas,
etc., al final pierde más tiempo el disco moviendo las cabezas que leyendo.

Yo no me lo creí hasta que lo viví.

Imaginate el cliente... después de las 6 horas de backup del SQL, no les
quedaba noche para pasar el backup a cinta !! y ahora les sobra tiempo...

Saludos,
Guillermo

"Raul" wrote:

Es necesario reconstruir indices en SQL ?

Como se le hace ?

Thanks a lot.

Raul



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