Mi conclusión sobre particionar tablas

13/10/2004 - 18:56 por Pedro Jose Caceres | Informe spam
Sobre el hilo anterior donde consultaba sobre particionamiento de tablas por
año, luego de combinar varias respuestas (algunas contradictorias como dijo
alguien:) y hacer un par de pruebas he decidido unir las tablas en una sola
porque concluyo que no me reporta ningún beneficio tenerlas separadas o por
lo menos el beneficio es muy minimo, mientras que la programacion es mas
compleja.

A veces quizás por venir de otras plataformas no C/S uno pierde de vista que
SQL server esta precisamente diseñado para manejar grandes volúmenes de
datos sin necesidad de estar particionando. Por lo tanto en lo adelante no
habre de preocuparme por el volumen de los datos en las tablas siempre que
tenga los indices bien definidos.


Gracias a todos

Pedro Jose Caceres

Preguntas similare

Leer las respuestas

#6 SqlRanger
14/10/2004 - 08:07 | Informe spam
¿ Has considerado poner la fecha como índice clustered ?

Eso podría aumentar mucho el rendimiento si la mayoría de las consultas
tienen un rango de fechas en la cláusula where.

Saludos:

Jesús López
MVP
Respuesta Responder a este mensaje
#7 Carlos Sacristan
14/10/2004 - 09:05 | Informe spam
Vaya Jesús, ayer no pude estar mucho por aquí y me ha sorprendido la
cantidad de respuestas que has publicado... ¿nos vas a acompañar una
temporadita? :-D

PD: también estoy viendo a Eladio, Miguel, Salva... como en los buenos
tiempos, sólo falta "er maeztro"


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"SqlRanger" escribió en el mensaje
news:#k#
¿ Has considerado poner la fecha como índice clustered ?

Eso podría aumentar mucho el rendimiento si la mayoría de las consultas
tienen un rango de fechas en la cláusula where.

Saludos:

Jesús López
MVP


Respuesta Responder a este mensaje
#8 Berta Gomez
14/10/2004 - 11:23 | Informe spam
"SqlRanger" wrote in message
news:%23k%
¿ Has considerado poner la fecha como índice clustered ?

Eso podría aumentar mucho el rendimiento si la mayoría de las consultas
tienen un rango de fechas en la cláusula where.




No importa que la clausula where tuviera otras expresiones condicionales
aparte de la relativa a la fecha, tambien aplica igual ese criterio ?
Respuesta Responder a este mensaje
#9 SqlRanger
14/10/2004 - 15:19 | Informe spam
En general, la respuesta es que sí. Porque teniendo un rango de fechas en la
where y un índice agrupado sobre la fecha, jamás SQL Server hará una
exploración completa de la tabla que es lo peor que le puede pasar a una
consulta, aunque haya otras condiciones en la where, combinadas con AND,
claro.

Las consultas que más se benefician de esto son aquellas que antes de ser la
fecha un índice agrupado, se requería una exploración completa de la tabla,
como las que tienen un rango de fechas lo suficientemente grande (de una
semana, un mes o más) y no tienen otras condiciones muy restrictivas con un
índice que usar.

Las consultas que tengan un rango pequeño de fechas también resultarán
beneficiadas porque ya no se tendrán que realizar bookmark lookups para
ejecutar estas consultas.

La pega de tener un índice agrupado sobre la fecha, es el tamaño de la
clave. Toda clave de índice agrupado tiene que ser única. Si en principio no
es única, SQL Server la hace única añadiéndole un unicificador, un entero de
32 bits. Así que si la fecha, preferiblemente smalldatetime, ocupa 4 bytes,
la clave del índice agrupado tiene 8 bytes. Si antes teníamos una clave
agrupada entera, un Id autonumérico por ejemplo que sólo eran 4 bytes, caben
menos claves agrupadas en una página y el árbol del índice podría tener más
niveles con lo que los bookmark lookups se verían perjudicados, al tener que
leer alguna página más para realizar la operación.

La consecuencia de esto último es que si la clave agrupada anterior era más
pequeña, se verán perjudicadas aquellas consultas que tengan un rango grande
de fechas y condiciones adicionales combinadas con and muy restrictivas e
índice disponible. Sin embargo estas consultas se seguirán ejecutando
rápidas porque usan índices.


Siento no poder darte un sí o un no rotundos, pero las cosas son así, por un
lado ganas y por otro pierdes. La decisión debe tomarse en función de si
ganas más de lo que pierdes.


Saludos:

Jesús López
MVP
Respuesta Responder a este mensaje
#10 SqlRanger
14/10/2004 - 15:21 | Informe spam
Os acompañaré siempre que pueda, eso depende de lo liado que esté.

Un abrazo

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