Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Optimización de Procedimiento - Sql Server

Estas en el tema de Optimización de Procedimiento - Sql Server en el foro de SQL Server en Foros del Web. Hola amigos, llego a ustedes para realizar una pregunta sobre algo que me tiene bastante inquieto. estoy creando un procedimiento en el que debo recorrer ...
  #1 (permalink)  
Antiguo 23/02/2017, 11:07
 
Fecha de Ingreso: abril-2015
Mensajes: 96
Antigüedad: 9 años, 7 meses
Puntos: 1
Optimización de Procedimiento - Sql Server

Hola amigos, llego a ustedes para realizar una pregunta sobre algo que me tiene bastante inquieto. estoy creando un procedimiento en el que debo recorrer una tabla con 120 mil registros y luego realizar algunos calculos. el tema es que tan solo con mil registros este procedimiento se demora alrededor de 30 minutos.
Osea que para finalizar completamente se tardaria unas 10 horas.

en primera instancia recorriamos las tablas con cursores, pero hasta donde se, estos consumen muchos recursos y relentizan el PRC. Modificamos los Cursores por Update y para recorrer la tabla con While.

No nos dio resultado se esta demorando lo mismo..

Es por ello que llego a ustedes para saber, si existe alguna forma de poder recorrer una tabla con tantos registros y que el tiempo de respuesta no sea tan elevado.
  #2 (permalink)  
Antiguo 23/02/2017, 11:23
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Optimización de Procedimiento - Sql Server

30 mins para 1000 registros, te comento que hice un query para comparar 16,000,000 de registros contra varias tablas y regresaba resultados en 20seg, asi que definitivamente tu procedure esta mal, dices que quitaste los cursores y dejaste un while? sabias que estas haciendo lo mismo? porque sigues haciendo iteraciones lo mejor seria hacer un query donde se haga el calculo y el update sobre el mismo query sin necesidad de iterar, pon tu codigo y podemos ver como ayudarte :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 23/02/2017, 12:19
 
Fecha de Ingreso: abril-2015
Mensajes: 96
Antigüedad: 9 años, 7 meses
Puntos: 1
Respuesta: Optimización de Procedimiento - Sql Server

Hola Libras, gracias por tu respuesta. Bueno, te comento que la iteración la hacemos, porque lo que guarda cada registro es un movimiento de saldos, y lo que debemos hacer es ir reajustando ese movimiento de saldo en base a la economía local (UF chile).

Lo que hacemos básicamente es tomar la fecha del movimiento y el valor de este y reajustarlo en base a algunos calculos.

¿El problea es cómo podemos ir leyendo cada valor de fila sin tener que iterarlo?, ya que necesariamente tenemos que conocer la fecha del movimiento y el valor de este.
  #4 (permalink)  
Antiguo 23/02/2017, 12:57
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Optimización de Procedimiento - Sql Server

Todo depende de como esten tus datos y como este tu query, pero se puede hacer, a menos que sea relamente necesaria la iteracion pero a lo que comentas se puede sacar todo en un solo query sin necesidad de iterar, como hacerlo? bueno para eso necesito conocer tus datos(tablas) ademas de ver como esta tu procedure.
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 24/02/2017, 10:56
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Optimización de Procedimiento - Sql Server

Coincido con Libras, hasta no conocer bien el proceso, no se puede dar una opinion cercana a la realidad.
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 24/02/2017, 11:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Optimización de Procedimiento - Sql Server

Totalmente de acuerdo.

Postea el código y alli empezaremos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: optimización, procedimiento, server, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:01.