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

Problemas con Rendimiento en una aplicación con SQL Server 2000

Estas en el tema de Problemas con Rendimiento en una aplicación con SQL Server 2000 en el foro de SQL Server en Foros del Web. Holas a todos! Tengo un pequeño gran problema con el SQL server. Me pidieron q desarrolle una aplicación en ASP y SQL para soporte a ...
  #1 (permalink)  
Antiguo 29/11/2006, 07:53
 
Fecha de Ingreso: octubre-2004
Mensajes: 14
Antigüedad: 19 años, 6 meses
Puntos: 0
Problemas con Rendimiento en una aplicación con SQL Server 2000

Holas a todos! Tengo un pequeño gran problema con el SQL server.

Me pidieron q desarrolle una aplicación en ASP y SQL para soporte a la toma de inventario acà donde trabajo. Todo funcionaba genial, cuando el tiempo andaba normal eran solo 2 personas las q ingresaban los datos en el sistema, pero un dia, q necesitabamos la info ingresada pero ya!, pusimos a un grupo de 6 todos ingresando datos al sistema al mismo tiempo. El sistema no aguantó, y cada 2 minutos se caia O_o... Primero pensè q podia ser el ancho de banda del server éste es algo viejito pero bueno:

COMPAQ PROLIANT 1600 con un Procesador PIII de 600Mhz y 256 de RAM (ECC SDRAM).

De ahi pensè q podia ser la red, pero en todas el internet andaba normal. Puse la aplicación en otra pc, conectandose a la BD en el mismo servidor, pero igual! se seguia colgando... Revisando el analizador, me di cuenta de q es en las consultas donde se está colgando la BD, es a varias tablas y uso un procedimiento almacenado. No se la vdd, pero hay alguna limitación o problema si se ejecuta un SP varias veces al mismo tiempo? actualicè el SQL al SP4 pero sigue dando esos problemas... funciona normal cuando trabajan solo 2... pero igual a veeeeeeeeeeeeces se cae...

no se si alguien tenga alguna idea de qué puede estar pasando O_o
  #2 (permalink)  
Antiguo 29/11/2006, 20:22
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
El problema no es de Hardware ni del SQL, quizas es del diseño de la aplicacion, las tablas que tienes en la BD están debidamente indexadas? tienen llaves? por que si no puedes estar teniendo problemas de bloqueos recurrentes, o DeadLocks (lo cual es peor) como avances podrías poner a correr la aplicacion en varias máquinas, y cuando veas que se empieza a colgar ejecuta SP_WHO en un QueryAnalizer te debiera devolver una tabla, revisa la columna BLK si hay alguna <> 0 ahi tienes bloqueos, para revisar el proceso bloqueado usa un dbcc inputbuffer(X) (Donde X es el campo spid del renglon que contiene blk <> 0), para ver el proceso que lo está bloqueando haz lo mismo per X debiera ser el valor de la columna blk

Saludos!
  #3 (permalink)  
Antiguo 30/11/2006, 15:14
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Ya que tengas la parte sencilla de la optimización (indices, llaves, etc.) puedes entrar en el tema de los HINTS, que son instrucciones especiales para el optimizador sobre como utilizará los candados.

De esta manera puedes, por ejemplo, indicar un select con JOIN a varias tablas e indicar tabla por tabla, que tipo de candados (locks) utilizará para obtener la información. Esto para obtener el balance aislamiento-concurrencia que mejor te convenga.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 30/11/2006, 15:23
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
pero por el amor de Dios, no hagas lo que muchos, que a toda consulta que hacen le ponen el Hint de Optimizacion (NOLOCK), eso lo hace la gente que no se toma el tiempo de analizar debidamente la estructura optima de la Base de Datos, una BD decentemente indexada y con toda la parafarlaria de analisis, aunado a consultas optimas que exploten los recursos de los que dispone el server no debiera dar problema de bloqueos.

Saludos!
  #5 (permalink)  
Antiguo 04/12/2006, 08:39
 
Fecha de Ingreso: octubre-2004
Mensajes: 14
Antigüedad: 19 años, 6 meses
Puntos: 0
Muchachos, muchas gracias! Voa probar todo lo q me han dicho y les cuento cómo va!
  #6 (permalink)  
Antiguo 04/12/2006, 15:37
 
Fecha de Ingreso: octubre-2004
Mensajes: 14
Antigüedad: 19 años, 6 meses
Puntos: 0
Sip, detecté bloqueos como dijo Gabo... la BD está relacionada, normalizada, con todas sus llaves como debe ser... hacer los índices me faltó, pero ia lo hice y la cosa parece haber mejorado bastante, pero todavia se cuelga a de vez en cuándo... io juraría q se colgaba x los procedimientos almacenados, pero na q ver, x lo q vi la mayoria de las veces ha sido en sentencias super simples como:

SELECT id_reg,ur_nombre FROM dbo.u_region ORDER BY ur_nombre ASC
SELECT id_prov,up_nombre FROM dbo.u_provincia ORDER BY up_nombre ASC

¿Qué puedo hacer? Consejos, consejos :cry:
  #7 (permalink)  
Antiguo 04/12/2006, 16:24
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 5 meses
Puntos: 6
Tienes por ahi alguna sentencia que te este bloqueando las tablas u_region o u_provincia, aca normalmente pasa si a un SP le pones un Begin Tran, no le haces un commit y dejas la conexion abierta, investiga quien te tiene bloqueado esas tablas y por ahi buscale

Saludos!
  #8 (permalink)  
Antiguo 05/12/2006, 17:48
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Para el tema de las transacciones también tienes los ISOLATION LEVELS (transaction isolation levels), donde explicas la manera en que se tratará la atomicidad de la transacción. A más seguridad mayor posesión (lentitud) de recursos.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 15:53.