miércoles, 10 de diciembre de 2014

Pregunta "En la empresa donde trabajo utilizan sql server standard edition y no tiene disponible la opción de particionar, que puedo hacer si tengo una tabla de 10 millones de registros?"



PREGUNTA

Alejandro xxxxxxx @yahoo.com




Cordial saludo
Buenos días , señor Gustavo
Mi nombre es Fabio Hernández , trabajo en el área de desarrollo .net y bases de datos sql server , vi un blog suyo muy interesante y habla del tema de particionamiento de tablas SQL SERVER PARA TODOS Gustavo Ricardo Herrera : PARTICIONAR TABLAS EN 5 PASOSEn la empresa donde trabajo utilizan sql server standard edition y no tiene disponible la opcion de particionar, que puedo hacer si tengo una tabla de 10 millones de registros , en donde hay información histórica desde el año 2000 hasta el 2014, normalmente la información consultada es del 2012-2014 , pero en la tabla esta todo el historico, como no puedo particionar por la version del sql server que otra opcion podria hacer
Muchas gracias .
Att
xxxxxxx


CONTESTACION

Que tal Alejandro, saludos desde BsAs.

Perdón por la demora en contestarte, estoy muy atareado por estos dias.

Lo que te ocurre a Ti le ocurre a mucha gente... Van mis consideraciones...

-  Se te ha abierto una oportunidad de solicitarles a los dueños de la compañía para la cual trabajas el upgrade hacia una versión más profesional de Sql Server.  Has pie en la ecuación costo/beneficio y trata pues de explicarles - en el lenguaje más sencillo posible - uno de los problemas a los que se enfrenta la compañía (perfromance pobre de sus bases de datos), por no tener la versión adecuada de Sql Server.

- Una tabla de 10 millones de registros es, a priori, una tabla que no tendría que particionarse, al menos por la cantidad de registro que refieres. Recuerda siempre que el mantenimiento de una partición es una tarea más a futuro...

- Entiendo que tu problema pasa por otro lado...., veamos...

   Pienso que deberías hacer pie en algunos de los siguientes items antes de pensar en particionar.

   -  Determinación de las queries que más tiempo tardan en resolverse (hay un script en mi blog para ello)

   -  Estudio de los planes de ejecución de dichas queries. Apuesto hacia falta de un indexado apropiado o de una lógica "pobre" en las queries a las que te hago referencia.
    
   Por otra parte, desconozco si dispones de, al menos 3 discos físicos para poder distribuir los archivos de datos, log e índices en distintos discos y aprovechar de ese modo la lecto escritura paralela del sql server.

   Una última solución puede ser, yo no te la aconsejo, el crear una base de datos por año y luego simplemente joinear las consultas.

   Entiendo que habiendo revisado los anteriores puntos (planes de ejecución, indexado y lógica de las queries),  encontrarás la solución, sin precisar hacer esto último. 

   Suerte y quedo atento ante cualquier inquietud.

    Saludos desde Buenos Aires, Gustavo Herrera.   

No hay comentarios:

Publicar un comentario