SQL Server 2016 CPU inactiva alta y consultas extremadamente lentas


10

Tengo una instalación de ~ 10 días de WinServer2012R2 y SQL Server Express 2016 para probar. Soy el único usuario en esta máquina. Una base de datos con un .bak de SQL Server 2005 de ~ 250 MB se restaura sin ningún problema. Después de reiniciar la máquina, el proceso "SQL Server NT - 64 Bit" usa 0% de CPU.

Después de un par de minutos u horas y algunas consultas simples (¡sin actualizaciones / inserciones!) Del uso de CPU SSMS de "SQL Server NT - 64 Bit" de repente salta a ~ 15% y permanece allí, incluso cuando está inactivo. A partir de ese momento, las consultas que generalmente toman menos de un segundo de repente toman 2 minutos. Durante una consulta real, el uso de la CPU NO aumenta. El servidor queda prácticamente inutilizable en este estado.

Solo conectar SQL Server Profiler toma> 30 segundos. Además de mis propias consultas, veo muy pocas consultas de SQLServerCEIP / SQLTELEMETRY, ~ 3 por minuto.

Reiniciar SQL-Server no lo resuelve. El uso de la CPU vuelve a saltar a ~ 15%. Incluso después de horas, SQL-Server no se recupera. Solo reiniciar la máquina completa resuelve el problema.

Como se trata de una instalación "lista para usar", solo hay una pequeña base de datos, prácticamente sin consultas, solo yo como usuario y probablemente sin bloqueos, los numerosos artículos sobre problemas de rendimiento habituales del servidor SQL hablan de muchas cosas que no Realmente se aplica aquí. Parece que SQL-Server quiere concentrarse exclusivamente en alguna tarea interna.

Esta es una máquina virtual con 2GB de RAM y doble Xeon a 2GHz. También tengo VS2016 y es realmente rápido. Sin antivirus, ni siquiera Windows Defender. Ya tarde aquí. Probaré el sp_whoisactive mañana. Realmente me pregunto QUÉ está haciendo SQL Server allí ... En la máquina anterior con 1 GB, la misma base de datos se ejecutó bajo SQLServer2005 durante 10 años sin problemas ...

No soy un experto en SQL-Profiler. ¿Dónde debería comenzar a buscar?


Podría ser una mala instalación. Considere una nueva instalación del sistema operativo y SQL. Todos los service packs. Puedes perseguir cosas como esta para siempre. Si el problema persiste, puede descartar razonablemente la instalación.
paparazzo

77
¿Tienes un antivirus instalado? Agregaría una exclusión para el ejecutable de SQL Server, así como los archivos MDF, NDF y LDF.
Randolph West el

1
¿También examinó la configuración de ahorro de energía?
Randolph West el

Recuerdo un comportamiento similar de 2005 si la opción de base de datos auto_update_statistics_asyncestaba activada.
Roger Wolf

Intente desconectar la base de datos y verifique el uso de la CPU. Si el uso de la CPU no baja, entonces su problema de motor de base de datos del servidor sql.
Muhammad Yousaf Sulahria

Respuestas:


3

Como la utilización de su CPU es baja (y tiene un excelente conjunto de CPU), primero verificaría la presión de la memoria. Con SQL Express 2016, está limitado a 1410 MB de memoria, pero su VM solo tiene 2 GB. Dele a su VM 1GB más de memoria y vea si eso ayuda. También puede verificar su registro de SQL Server si está paginando memoria al archivo.

Si eso no funciona, intente configurar la base de datos LEGACY_CARDINALITY_ESTIMATION en ON. Referencia: Uso del nivel de compatibilidad de base de datos 130 con CE antiguo en SQL Server 2016 . Nos encontramos con esto con algunas de nuestras actualizaciones; Los resultados variarán con cada base de datos.


Mientras tanto, descubrí que iniciar / detener otro software con uso excesivo de memoria (como Visual Studio) empeora el problema de manera reproducible. Entonces, confirmaría que es un problema de memoria: SQL-Server comienza a paginar cuando se aprieta demasiado.
Andreas Steidle

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.