Principales respuestas
SQL Server 2008 muy lento

Pregunta
-
Me ocurre algo muy extraño que no se porque puede ser.
Tengo instalado SQL Server 2008 Standard en un servidor Windows 2003 server sp2, así como SQL Server 2000 standard en otro servidor igual.
Pues bien una consulta a una tabla (con muchos registros) en el SQL Server 2008 me tarda como unos 30 segundos, y la misma consulta en el SQL Server 2000 me tarda 1 segundos solamente, porque puede ser?
La base de datos es la misma en ambos SQLs (una copia identica).
Por si fuera poco, tengo instalado en mi ordenador, un XP sp2, el mismo SQL Server 2008 standard, y la misma consulta me tarda 1 segundo como mucho.
De vez en cuando la consulta en el SQL 2008 del servidor tarda 0 segundos y no se porque puede ser, que tarde 30 segundos y a veces 0 segundos. El servidor está bien de rendimiento.
A alguien le pasa lo mismo?
Muchas gracias.lunes, 30 de marzo de 2009 7:36
Respuestas
-
Hola.Si estás tú solo, no es un problema de bloqueos (bueno, sería muy extraño). Si tienes un 1Gb para un exchange, SQL Server y el sistema operativo, que come lo suyo, sí que es cierto que va muy justo de recursos. Tendrías que asegurar que SQL Server no toma todos los recursos pero que toma los suficientes, parametrizándole el max server memory y el min server memory en la misma cifra, digamos que 350Mb (por hacer 3 partes iguales). El problema puede ser que en el momento que lances la consulta se necesite usar el fichero de paginación para que los datos pasen del disco a la memoria, con el consiguiente retraso o que simplemente el resto de procesos están consumiendo los escasos recursos de que dispones. Pon contadores de rendimiento (lo básico) para tratar de ver si el problema está en CPU, disco o memoria. Una vez visto esto, lo demás será más fácil.Alberto López Grande.
- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator martes, 31 de marzo de 2009 13:55
- Marcado como respuesta Gustavo LarrieraModerator jueves, 10 de septiembre de 2009 18:05
martes, 31 de marzo de 2009 13:54Moderador
Todas las respuestas
-
Hola.Asegúrate de que el plan de ejecución que está tomándose cuando tarda tanto es el mismo que cuando tarda poco (podría ser debido a una degradación de índices y/o de estadísticas), así como de que no estés teniendo problemas de bloqueos (que es de lo que tiene pinta). Para minimizar los bloqueos, coloca antes de tu consulta:set transaction isolation level read uncommitted--y luego la consultaAlberto López Grande.
- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator lunes, 30 de marzo de 2009 17:22
lunes, 30 de marzo de 2009 17:22Moderador -
Hola Alberto,
Perdona pero soy nuevo con el SQL 2008 y aún nolo controlo del todo.
A que te refieres con el plan de ejecución? Donde veo esa opción en el administrador de SQL Server?
De bloqueos no creo que pueda ser porque solo estoy yo atacando la base de datos.
Me tiene un bastante desesperado porque me voy moviendo por las tablas, todo va muy bien y de repente se queda bloqueado y me tyarda un barbaridad, sin hacer nada.
No se si abrá algún mantenimiento propio del sql que me esta bloqueando esa tabla en concreto.
Por cierto, el SQL esta en el servidor de exchange y este tiene solo 1 GB de memoria, creo que por ahy pueden ir los tiros, pero para eso tengo que ampliarle la memoria al servidor.
las cosnultas las hago a traves de un programa en visual basic, es una consulta normal "select campo1,campo2 from tabla 1, tabla2 ...". ¿Como pondría la sentencia que me has comentado?
Un saludo y muchas gracias.martes, 31 de marzo de 2009 11:51 -
Hola.Si estás tú solo, no es un problema de bloqueos (bueno, sería muy extraño). Si tienes un 1Gb para un exchange, SQL Server y el sistema operativo, que come lo suyo, sí que es cierto que va muy justo de recursos. Tendrías que asegurar que SQL Server no toma todos los recursos pero que toma los suficientes, parametrizándole el max server memory y el min server memory en la misma cifra, digamos que 350Mb (por hacer 3 partes iguales). El problema puede ser que en el momento que lances la consulta se necesite usar el fichero de paginación para que los datos pasen del disco a la memoria, con el consiguiente retraso o que simplemente el resto de procesos están consumiendo los escasos recursos de que dispones. Pon contadores de rendimiento (lo básico) para tratar de ver si el problema está en CPU, disco o memoria. Una vez visto esto, lo demás será más fácil.Alberto López Grande.
- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator martes, 31 de marzo de 2009 13:55
- Marcado como respuesta Gustavo LarrieraModerator jueves, 10 de septiembre de 2009 18:05
martes, 31 de marzo de 2009 13:54Moderador