Particionado fisico de tablas SQL 2005

26/11/2007 - 15:47 por msnews.microsoft.com | Informe spam
Hola a todos

queria comentaros un caso que tenemos con los tiempos de acceso a una
determinada tabla y creemos que la solucion pasa por el particionado, pero
no estoy seguro como funciona y que rendimiento habria de esperar

segun tengo entendido, y a grandes rasgos, la mejor solucion seria un
particionado fisico de los datos

"bussines case" :: tabla de ventas, donde las escrituras se producen cada
hora y las lecturas continuamente, siendo los periodos mas consultados (en
orden por numero de consultas) ::
- ultima semana cerrada
- ultimo mes cerrado
- ultimas ventas (ultimos 2 o 3 dias)
- otros periodos

actualemtne tenemos una sola tabla, cuyo resultado son tiempos de espera
bastante largos cuando no bloqueos
primeramente pensamos en una particion logica (diferentes tablas) pero
creemos que la particion fisica seria mas eficiente (ademas de evitar tener
que cambiar el flujo de datos)

asi pensamos en dividir la tabla en las siguientes particiones

una, la mas grande y menor usada para todas las ventas anteriores a
principios de año (muy pocas consultas, y ninguna escritura)
cinco particiones mas en las que se escribirian una semana en cada una, asi
ventas__1 :: semana 1, semana 6, semana 11 ...
ventas__2 :: semana 2, semana 7, semana 12 ...
ventas__3 :: semana 3, semana 8, semana 13...
ventas__4 :: semana 4, semana 9 ...
ventas__5 :: semana 5, semana 10 ...

de esta forma raramente se leeria de la misma tabla en la que se esta
escribiendo, y el aceso a los datos (por ejemplo para ultimo mes cerrado) se
podria acelerar enormemente (aceso paralelo a un volumen de datos mucho
menor)

asi mismo pensamos en ampliar el numero de discos del servidor (actualmente
cuenta con dos para datos) incluyendo cinco dedicados para estos menesteres
(serian discos de no mucha capacidad, pero alta velocidad, con lo cual el
precio tampoco seria unn factor importante)

preguntas ::

es este particionamiento posible ??
habria que borrar y recargar los datos o se puede hacer on-live ??
al final de año, podrian los datos moverse de alguna forma de una particion
(dedicada) a la otra (la grande)


agradeceria por supuesto si me indicais alguna direccion donde podriamos
aprender un poco mas

gracias por adelantado
 

Leer las respuestas

#1 Maxi Accotto
02/12/2007 - 17:19 | Informe spam
Antes de haber evaluado la particion vieron porque son lentas las consultas?
hicieron algun profiler? vieron los planes?


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"msnews.microsoft.com" escribió en el mensaje de
noticias:
Hola a todos

queria comentaros un caso que tenemos con los tiempos de acceso a una
determinada tabla y creemos que la solucion pasa por el particionado, pero
no estoy seguro como funciona y que rendimiento habria de esperar

segun tengo entendido, y a grandes rasgos, la mejor solucion seria un
particionado fisico de los datos

"bussines case" :: tabla de ventas, donde las escrituras se producen cada
hora y las lecturas continuamente, siendo los periodos mas consultados (en
orden por numero de consultas) ::
- ultima semana cerrada
- ultimo mes cerrado
- ultimas ventas (ultimos 2 o 3 dias)
- otros periodos

actualemtne tenemos una sola tabla, cuyo resultado son tiempos de espera
bastante largos cuando no bloqueos
primeramente pensamos en una particion logica (diferentes tablas) pero
creemos que la particion fisica seria mas eficiente (ademas de evitar
tener que cambiar el flujo de datos)

asi pensamos en dividir la tabla en las siguientes particiones

una, la mas grande y menor usada para todas las ventas anteriores a
principios de año (muy pocas consultas, y ninguna escritura)
cinco particiones mas en las que se escribirian una semana en cada una,
asi
ventas__1 :: semana 1, semana 6, semana 11 ...
ventas__2 :: semana 2, semana 7, semana 12 ...
ventas__3 :: semana 3, semana 8, semana 13...
ventas__4 :: semana 4, semana 9 ...
ventas__5 :: semana 5, semana 10 ...

de esta forma raramente se leeria de la misma tabla en la que se esta
escribiendo, y el aceso a los datos (por ejemplo para ultimo mes cerrado)
se podria acelerar enormemente (aceso paralelo a un volumen de datos mucho
menor)

asi mismo pensamos en ampliar el numero de discos del servidor
(actualmente cuenta con dos para datos) incluyendo cinco dedicados para
estos menesteres (serian discos de no mucha capacidad, pero alta
velocidad, con lo cual el precio tampoco seria unn factor importante)

preguntas ::

es este particionamiento posible ??
habria que borrar y recargar los datos o se puede hacer on-live ??
al final de año, podrian los datos moverse de alguna forma de una
particion (dedicada) a la otra (la grande)


agradeceria por supuesto si me indicais alguna direccion donde podriamos
aprender un poco mas

gracias por adelantado

Preguntas similares