none
Consulta sobre tipo de espera PAGEIOLATCH_SH

    Pregunta

  • Buenas, paso a contarles.

    Estamos teniendo problemas de performance con SQL Server 2000 SP3 bajo Windows Server 2003 R2 SP1. Notamos que se producen muchos tipos de espera PAGEIOLATCH_SH, y cuando los detectamos el uso del disco se eleva a 100% (viendolo con el monitor de rendimiento que viene con el SQL Server, lo que provoca una lentitud general en todos los módulos del ERP que utilizamos (Gaci).

    Este tipo de espera la vemos en cualquier proceso de cualquier modulo, no hay algo especifico que la genere o no lo sabemos aun.

    Quería saber si es normal este tipo de espera o si esta relacionada a un mal uso de indices, acceso a demasiadas tablas a la ves etc. y a que apuntar para resolver este problema o mejorar la performance del server.

    Los datos del server son estos:

    Dell PE 2900

    Intel Xeon 5140 @ 2.33 GHz

    4 Gb de Ram

    3 discos en Raid 5 de 73 GB @10k rpm (para SQL solamente)

    El server esta dedicado a SQL.

    Espero puedan aconsejarme, saludos.

    Lucas

    jueves, 31 de mayo de 2012 15:27

Respuestas

  • Ese tipo de espera está relacionado con el uso del disco, como tú mismo has comprobado con el monitor de rendimiento. Si se produce siempre, o al menos es el que mayor porcentaje supone en un intervalo de tiempo específico (que es como se debería medir), muy probablemente se deba a que las consultas leen más datos de los necesarios, lo cual viene causado a su vez por la mala o nula indexación (o correcta pero que dichos índices estén sumamente fragmentados) o una ineficiente forma de escribir dichas consultas.

    También puede ser que esa memoria sea insuficiente para el uso que requiere SQL Server y deba tirar más de disco de lo necesario.

    Comentas que usas un RAID5 con 3 discos para SQL solamente, pero no indicas si tienes separados los ficheros de datos de los de log (algo absolutamente recomendable), ni si tempdb está también alojada en esos discos (con lo que el uso de dichos discos también aumentaría)

    En fin, que hay muchas cosas que investigar, pero al menos espero que mi respuesta te sirva para saber por dónde empezar...

    jueves, 31 de mayo de 2012 18:17

Todas las respuestas

  • Ese tipo de espera está relacionado con el uso del disco, como tú mismo has comprobado con el monitor de rendimiento. Si se produce siempre, o al menos es el que mayor porcentaje supone en un intervalo de tiempo específico (que es como se debería medir), muy probablemente se deba a que las consultas leen más datos de los necesarios, lo cual viene causado a su vez por la mala o nula indexación (o correcta pero que dichos índices estén sumamente fragmentados) o una ineficiente forma de escribir dichas consultas.

    También puede ser que esa memoria sea insuficiente para el uso que requiere SQL Server y deba tirar más de disco de lo necesario.

    Comentas que usas un RAID5 con 3 discos para SQL solamente, pero no indicas si tienes separados los ficheros de datos de los de log (algo absolutamente recomendable), ni si tempdb está también alojada en esos discos (con lo que el uso de dichos discos también aumentaría)

    En fin, que hay muchas cosas que investigar, pero al menos espero que mi respuesta te sirva para saber por dónde empezar...

    jueves, 31 de mayo de 2012 18:17
  • Como dice carlos  hay muchas cosas por donde  apuntar,

    yo empezaria con la revision de la indexación,

    compartenos las configuración de tu instancia,

    compartenos como tienes distribuidos los data files de tus bases de datos en tus discos,

    Revisa el consumo de memoria cuando ocurre la lentitud,

    Fragmentación de indices,

    que otros tipos de waits estas recibiendo,

    ,en fin  se me estan llendo algunas cosas mas que se podrian revisar y mas avanzadas pero  por algo hay que empezar,  si nos compartes mas detalles de pronto de podremos acercar a la solución

    Saludos

    http://dbasqlserver.wordpress.com/

    jueves, 31 de mayo de 2012 22:54
  • Muchas gracias por la respuesta!

    En cuanto a la indexacion a mi entender no es la mejor en las bases, cada tabla tiene demasiados indices, pero le consulte al proveedor del software y nos dijo que son los mismos indices que en los demas clientes. Por la fragmentacion me pasaron una consulta para ver el grado de fragmentacion de los indices y me dijeron que si estan arriba del 40% se consideran fragmentados, pero me falto saber como recomponer esos indices. Hay varios arriba del 40%.

    En cuando a memoria siempre esta bastante estable, no supera los 3 Gb y el procesador siempre esta muy tranquilo.

    Los archivos de log, data y los temporales están todos en el mismo arreglo de 3 discos ya que no disponemos de otro arreglo. En un principio cuando empezo esta base solo tenia 20Gb y sobraba server.

    Si tenemos 3 discos de 450 GB @15k RPM de backup que pensamos cambiarlos ya que la controladora los soporta, como para ver si es un tema exclusivo de los discos. También tengo que averiguar si la controladora soporta otro raid5 con los discos nuevos,eso estaría genial.

    Saludos

    miércoles, 06 de junio de 2012 20:29
  • Pues mira aqui te van algunos links para que te empiezes a documentar, y agarres mejor por donde van y el por que de las preguntas que te hicimos,

    http://dbasqlserver.wordpress.com/2012/03/13/indices-sql-server/

    http://dbasqlserver.wordpress.com/2012/03/09/optimizacion-de-indices-sql-server/

    http://dbasqlserver.wordpress.com/2012/03/08/como-determinar-la-densidad-de-un-indice/

    Otra de las cosas que te preguntamos es que nos dijeras como tenias distribuidos los data files de las bases de datos estan en el mismo disco ?

    Saludos

    miércoles, 06 de junio de 2012 21:33
  • "Los archivos de log, data y los temporales están todos en el mismo arreglo de 3 discos ya que no disponemos de otro arreglo. "

    Como escribi arriba, si tenemos el archivo de Log y datos en el mismo disco.

    Estamos preparandonos para armar otro raid 5 para poder distribuirlos.

    Voy a ver los links que me pasastes, muchisimas gracias.

    Saludos

    jueves, 07 de junio de 2012 15:29
  • Hola.

    ¿Resolvimos tus dudas?


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    domingo, 17 de junio de 2012 14:35
    Moderador
  • Si, ya marco la respuesta.

    Muchas gracias!

    viernes, 13 de julio de 2012 14:24