
Estoy usando Microsoft SQL Server 2017 Web Edition en un entorno virtualizado alojado en Amazon EC2. Según MicrosoftEdiciones y funciones compatibles de SQL Server 2017En la página, la "Capacidad informática máxima utilizada por una sola instancia: motor de base de datos de SQL Server" está "Limitada a 4 sockets o 16 núcleos".
Por Administrador de tareas de Windows en el entorno virtual tengo 4 procesadores virtuales. Pero cuando ejecuto una consulta SQL exigente y de larga duración, la utilización de la CPU alcanza un máximo del 25%.
Si la limitación para Web Edition es 4 sockets o 16 núcleos, el menor, ¿no debería permitirme usar el 100% de mis procesadores virtuales? ¿O estoy entendiendo mal cómo Windows o SQL Server clasifican los procesadores virtuales?
Gracias
Respuesta1
Por Administrador de tareas de Windows en el entorno virtual tengo 4 procesadores virtuales. Pero cuando ejecuto una consulta SQL exigente y de larga duración, la utilización de la CPU alcanza un máximo del 25%.
Lo que significa que incluso si la VM se mostrara como 1 núcleo por socket (lo cual sería malo), aún podría usar los 4 por licencia. Por tanto, la consulta está ejecutando un plan en serie y no en paralelo.
El hecho de que sea una "consulta de larga duración" y requiera "25% de CPU" significa que la consulta probablemente no esté muy bien escrita o que el diseño del esquema no esté a la altura. De cualquier manera, ejecutarlo a través de un plan paralelo (si es posible dada la consulta) solo haría que el servidor tenga un uso de CPU mayor de lo normal.
Sería mejor observar la consulta, el esquema y los objetos de soporte y ajustarlos.