Problemas con Performance en Tablas Grandes Consulta Sql - sql2000

09/01/2006 - 03:31 por Developers | Informe spam
Amigos tengo una tabla de Detalle de Almacenes que alrededor tiene
2,000,000 de registros ahora esta tabla se usa bastante para obtener
Sumatorias como por Ejemplo:
Movimiento Mensual x Producto (Codigo,Ene,Feb,Mar,Abr,etc...)
Movimiento Mensual x Proveedor - Producto
(Proveedor,Codigo,Ene,Feb,Mar,Etc)
Ventas Mensuales x Cliente
Ventas Diarias x Producto y Etc...

Todas estas consultas cada dia se hacen mas pesadas(Demora Mucho en
Procesar algunos casos hasta llega los 5 minutos cuando son anuales)
Estaba pensando Tener algunas Tablas Acumulativas para Ganar Tiempos
como ejemplo (Tabla 1 Acumulado xMes, Tabla 2 Acumulado x Fecha,etc) y
que estas se alimenten con Triggers cuando la Tabla Principal sea
Actualizada o se Alimenten con Procesos Nocturnos.

Espero que me puedan aconsejar o que seria lo mas recomendable???




Gracias

Preguntas similare

Leer las respuestas

#1 Maxi [MVP]
09/01/2006 - 03:48 | Informe spam
Hola, revisa primero los planes de ejecucion y por medio de ellos podras
sacar donde este el problema. Quizas no tengas los indices adecuados, quizas
no se esten usando de forma eficiente, quizas la query este mal
desarrollada, la verdad que con tan poca informacion que nos has dado es muy
dificil poder ser exactos de nuestra parte :(


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org



"Developers" escribió en el mensaje
news:%
Mostrar la cita
#2 Guillermo Roldan
09/01/2006 - 08:59 | Informe spam
Hola,

Me da la impresión, de que las consultas que ejecutas están produciendo
FullScan de tablas y/o de índices. Esto, lo podrás comprobar obteniendo el
plan de ejecución, como bien ha dicho Maxi.

Si no consigues corregir el plan de ejecución, o apenas consigues mejorarlo,
sólo se me ocurren dos opciones:
- Particionar tablas. Utiliza una vista con UNION ALL y varias tablas, en
cada una de las cuales debes de tener un CHECK constraint exclusivo (ej: en
una año 00, en otra año 01, etc). Ahora, los FullScan están limitados a
cada tabla particionada, por lo cual son menos IOs, y en función de como
particiones, si distribuyes los accesos entre las particiones, también
eliminarás bloqueos.
- Utilizar Analysis Services. Un Cubo Olap, puede ser una solución muy
eficaz. El timepo de respuesta dificilmente te superaría dos segundos con tan
pocos registros.

Saludos,
Guillermo

"Developers" wrote:

Mostrar la cita
#3 Developers
09/01/2006 - 14:02 | Informe spam
Respecto a Indices segun lo que arroja el Plan de Ejecucion usan Index
Seek, Creo que voy a seguir con Cubos Olap para haber como va.

Gracias


"Maxi [MVP]" escribió en el mensaje
news:e%
Mostrar la cita
quizas
Mostrar la cita
muy
Mostrar la cita
como
Mostrar la cita
Actualizada
Mostrar la cita
#4 Maxi
09/01/2006 - 15:55 | Informe spam
Holas, y que tienen que ver los Cubos OlaP?


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Developers" escribió en el mensaje
news:
Mostrar la cita
#5 Developers
09/01/2006 - 17:18 | Informe spam
En el Sentido que los Usuarios trabajan bastante con Acumulados, y al hacer
demasiados Procesos que a veces son en Paralelo creo que sufren mas son los
usuarios que hacer las Transacciones.

pero todavia no es Seguro lo del Cubo.



"Maxi" escribió en el mensaje
news:
Mostrar la cita
podras
Mostrar la cita
es
Mostrar la cita
7>
Ads by Google
Search Busqueda sugerida