Tengo una instancia de SQL Server 2005 que está experimentando tiempos lentos. Esteenlacemuestra los detalles de rendimiento. Como no analizo este tipo de datos a diario, me preguntaba si existen problemas reales con el sistema de E/S.
El servidor utiliza una SAN y los archivos DB y Tempdb están en la misma unidad (E:). No es la mejor arquitectura, pero no tengo control sobre el servidor. El servidor se utiliza para ejecutar informes utilizando Cognos, por lo que es principalmente una base de datos de solo lectura.
Gracias
Aquí hay un código divertido que debe corregirse.
select "tempSalesRpt_SubRgnDist"."Region" AS "Region",
min("tempSalesRpt_SubRgnDist"."RegionName") AS "Region_Text"
from "SalesReporting"."dbo"."tempSalesRpt_SubRgnDist" "tempSalesRpt_SubRgnDist",
(select "SecurityMaster"."Userid" AS "Userid", "SecurityMaster"."SoldTo" AS "SoldTo"
from "SalesReporting"."dbo"."SecurityMaster" "SecurityMaster"
where "SecurityMaster"."Userid" = lower ('USTGACA')) "SecurityMaster4"
where NOT "SecurityMaster4"."Userid" is null
and "tempSalesRpt_SubRgnDist"."SoldTo" ="SecurityMaster4"."SoldTo"
group by "tempSalesRpt_SubRgnDist"."Region"
order by 1 asc , 2 asc
Se accede a la tabla securitymaster en cada consulta y esa es la tabla que ha aumentado recientemente.
Supongo que este código no tiene código sargable, pero el plan de ejecución muestra que se utilizan búsquedas de índice y búsquedas de claves.
Veo que algunos índices nuevos podrían ayudar, pero necesito profundizar más.
Respuesta1
Según los datos proporcionados, algo está sucediendo. Las colas de su disco son segundos por lectura y los contadores de segundos por escritura son mucho más altos de lo que usted desea. Ahora bien, el problema aquí es que esto no significa que sea un problema de disco, sólo que los discos se están bloqueando. Podría tener un problema de indexación o de estadísticas, lo que está provocando que SQL Server golpee los discos con más fuerza de lo necesario.
Comience mirando los índices en la base de datos y vea si es necesario crear algún índice nuevo. Esto aumentará el tamaño de su base de datos pero verá una reducción del tráfico al disco y una disminución en el tiempo de ejecución de la consulta.
Puede comenzar mirando los planes de ejecución de sus consultas de larga duración que le indicarán dónde necesita agregar índices.
Respuesta2
Además de la respuesta de Denny, tiene aproximadamente 5 GB de memoria libre en su caja. ¿Ha configurado correctamente la memoria de SQL?
Si tiene un sistema de 32 bits, puede acceder a más memoria habilitando AWE:
http://technet.microsoft.com/en-us/library/ms190673(SQL.90).aspx
SQL utilizará esta memoria adicional para almacenar en caché más tablas/índices de bases de datos (suponiendo que su base de datos sea más grande que su memoria libre).