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:%
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
Respuesta Responder a este mensaje
#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:

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

Respuesta Responder a este mensaje
#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%
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:%
> 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


Respuesta Responder a este mensaje
#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:
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%
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:%
> 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






Respuesta Responder a este mensaje
#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:
Holas, y que tienen que ver los Cubos OlaP?


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


"Developers" escribió en el mensaje
news:
> 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%
>> 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:%
>> > 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
>>
>>
>
>



7>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida