Transacciones en un SP

06/09/2005 - 15:40 por c | Informe spam
Hola a todos, tengo una duda sobre el control de transacciones desde el SQL
Query Analyzer.

Actualmente tengo un SP que agrupa a su vez a 12 SP especificos, esto es
debido a que todos se deben de ejecutar mensualmente, y el haberlos dejados
individuales es debido a que puede ocurrir que algunos datos de Carga cambien
y por eso solo debo ejecutarlos de forma individual.

Pero en si el tema es que al llegar al SP No. 10, se me queda pegada la DB y
se puede quedar asi por mas de 30 min, y tengo que cancelar el SP General. Y
decirle que si me haga un Commit de las transacciones. Si no hago esto pues
tengo un ROLLBACK del SP en el mismo Analyzer y perdi las ejecuciones de los
primeros 9 SP.

Ahora si ejecuto el SP No. este no demora mas de 1 minuto en ejecutarse.

Los valores a tener en cuenta son:

Cada SP se ejecuta sobre un conjunto de 25.500 registros en promedio, pero
algunos de ellos no se ejecutan sobre el 100% de ellos sino sobre un 30-40%.
Las especificaciones del Servidor son: Pentium Xeon 2.70Ghz (4 procesadores),
8 Gb RAM, 3 HD para Datos de 8.29 Gb, 50 Gb y 380 Gb (este es para los Datos
de SQL)

Puede ser que el Servidor de SQL se queda corto por el numero de
transacciones que se estan ejecutando dentro del SP General, y si es asi me
imagino que una de las formas de evitar esto seria dividirlo en varios SP que
agrupen las operaciones comunes, en caso contrario que puede estar pasando?

Gracias

Carlos Andrés Lozano
Solution Development

Preguntas similare

Leer las respuestas

#1 Gabriel S.
06/09/2005 - 22:54 | Informe spam
Definitivamente es la ultima opcion, el log se esta pasando de la raya
Deberias aumentar el log...

"" wrote in message
news:
Hola a todos, tengo una duda sobre el control de transacciones desde el


SQL
Query Analyzer.

Actualmente tengo un SP que agrupa a su vez a 12 SP especificos, esto es
debido a que todos se deben de ejecutar mensualmente, y el haberlos


dejados
individuales es debido a que puede ocurrir que algunos datos de Carga


cambien
y por eso solo debo ejecutarlos de forma individual.

Pero en si el tema es que al llegar al SP No. 10, se me queda pegada la DB


y
se puede quedar asi por mas de 30 min, y tengo que cancelar el SP General.


Y
decirle que si me haga un Commit de las transacciones. Si no hago esto


pues
tengo un ROLLBACK del SP en el mismo Analyzer y perdi las ejecuciones de


los
primeros 9 SP.

Ahora si ejecuto el SP No. este no demora mas de 1 minuto en ejecutarse.

Los valores a tener en cuenta son:

Cada SP se ejecuta sobre un conjunto de 25.500 registros en promedio,


pero
algunos de ellos no se ejecutan sobre el 100% de ellos sino sobre un


30-40%.
Las especificaciones del Servidor son: Pentium Xeon 2.70Ghz (4


procesadores),
8 Gb RAM, 3 HD para Datos de 8.29 Gb, 50 Gb y 380 Gb (este es para los


Datos
de SQL)

Puede ser que el Servidor de SQL se queda corto por el numero de
transacciones que se estan ejecutando dentro del SP General, y si es asi


me
imagino que una de las formas de evitar esto seria dividirlo en varios SP


que
agrupen las operaciones comunes, en caso contrario que puede estar


pasando?

Gracias

Carlos Andrés Lozano
Solution Development
Respuesta Responder a este mensaje
#2 c
07/09/2005 - 14:27 | Informe spam
Hummm voy a revisar eso, pero entonces los commit no estan siendo hechos
hasta que no haga el commit del SP en el Query Analyzer, cierto?
Gracias

Carlos Andrés Lozano
Solution Development
Nativa Tecnologías



"Gabriel S." escribió:

Definitivamente es la ultima opcion, el log se esta pasando de la raya
Deberias aumentar el log...
Respuesta Responder a este mensaje
#3 Maxi
07/09/2005 - 16:37 | Informe spam
Hola, revisa los bloqueos ahi tienes el problema


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"" escribió en el mensaje
news:
Hola a todos, tengo una duda sobre el control de transacciones desde el
SQL
Query Analyzer.

Actualmente tengo un SP que agrupa a su vez a 12 SP especificos, esto es
debido a que todos se deben de ejecutar mensualmente, y el haberlos
dejados
individuales es debido a que puede ocurrir que algunos datos de Carga
cambien
y por eso solo debo ejecutarlos de forma individual.

Pero en si el tema es que al llegar al SP No. 10, se me queda pegada la DB
y
se puede quedar asi por mas de 30 min, y tengo que cancelar el SP General.
Y
decirle que si me haga un Commit de las transacciones. Si no hago esto
pues
tengo un ROLLBACK del SP en el mismo Analyzer y perdi las ejecuciones de
los
primeros 9 SP.

Ahora si ejecuto el SP No. este no demora mas de 1 minuto en ejecutarse.

Los valores a tener en cuenta son:

Cada SP se ejecuta sobre un conjunto de 25.500 registros en promedio,
pero
algunos de ellos no se ejecutan sobre el 100% de ellos sino sobre un
30-40%.
Las especificaciones del Servidor son: Pentium Xeon 2.70Ghz (4
procesadores),
8 Gb RAM, 3 HD para Datos de 8.29 Gb, 50 Gb y 380 Gb (este es para los
Datos
de SQL)

Puede ser que el Servidor de SQL se queda corto por el numero de
transacciones que se estan ejecutando dentro del SP General, y si es asi
me
imagino que una de las formas de evitar esto seria dividirlo en varios SP
que
agrupen las operaciones comunes, en caso contrario que puede estar
pasando?

Gracias

Carlos Andrés Lozano
Solution Development
Respuesta Responder a este mensaje
#4 c
07/09/2005 - 17:39 | Informe spam
Pero Maxi, si se estan haciendo los SP de forma serializable, y en cada uno
de ellos tengo este paremetro

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

Como podria estar quedand bloqueado cada transacción?, porque al final a
menos que se encuentre un error siempre hago el COMMIT respecto a la
transaccion y dentro de los SP si hay tres sentecias UPDATE por ejemplo cada
una es una transaccion y tiene su respectivo COMMIT, podria ser lo que dice
Gabriel que el archivo Log de las transacciones se me queda corto?.

De acuerdo al DBA, me dice en ese momento que la DB esta al 100% es decir se
cuelga con algun proceso, pero no hemos podido saber si es el mio :'(

Gracias

Carlos Andrés Lozano
Solution Development
Nativa Tecnologías



"Maxi" escribió:

Hola, revisa los bloqueos ahi tienes el problema


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com
Respuesta Responder a este mensaje
#5 Maxi
07/09/2005 - 18:11 | Informe spam
Hola, no tiene nada q ver el transaction log. lo que pasa ahi es que algun
SP esta generando bloqueos con otros procesos ya que la transaccion es muy
grande y no se bien que hacen esos SP, pero podria hasta querer bloquear
toda una tabla imaginate!!

Te recomiendo que mires el profiler y ademas que trates de estudiar si
tantos SP es la unica forma q tenes de hacerlo, me imagino que no usaran
cursores no?


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"" escribió en el mensaje
news:
Pero Maxi, si se estan haciendo los SP de forma serializable, y en cada
uno
de ellos tengo este paremetro

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

Como podria estar quedand bloqueado cada transacción?, porque al final a
menos que se encuentre un error siempre hago el COMMIT respecto a la
transaccion y dentro de los SP si hay tres sentecias UPDATE por ejemplo
cada
una es una transaccion y tiene su respectivo COMMIT, podria ser lo que
dice
Gabriel que el archivo Log de las transacciones se me queda corto?.

De acuerdo al DBA, me dice en ese momento que la DB esta al 100% es decir
se
cuelga con algun proceso, pero no hemos podido saber si es el mio :'(

Gracias

Carlos Andrés Lozano
Solution Development
Nativa Tecnologías



"Maxi" escribió:

Hola, revisa los bloqueos ahi tienes el problema


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida