Я использую Microsoft SQL Server 2017 Web Edition в виртуализированной среде, размещенной на Amazon EC2. Согласно Microsoft Выпуски и поддерживаемые функции SQL Server 2017 на странице «Максимальная вычислительная мощность, используемая одним экземпляром - ядро СУБД SQL Server» - это «Ограничено до 4 сокетов или 16 ядер».
На диспетчер задач Windows в виртуальной среде у меня 4 виртуальных процессора. Но когда я запускаю длительный и требовательный SQL-запрос, загрузка ЦП достигает 25%.
Если ограничение для Web Edition меньше 4 сокетов или 16 ядер, не следует ли мне разрешить использовать 100% моих виртуальных процессоров? Или я неправильно понимаю, как Windows или SQL Server классифицируют виртуальные процессоры?
Спасибо
На диспетчер задач Windows в виртуальной среде у меня 4 виртуальных процессора. Но когда я запускаю длительный и требовательный SQL-запрос, загрузка ЦП достигает 25%.
Это означает, что даже если бы виртуальная машина отображалась как 1 ядро на сокет (что было бы плохо), она все равно могла бы использовать все 4 на лицензию. Таким образом, запрос выполняет последовательный план, а не параллельный.
Тот факт, что это «длительный запрос» и он требует «25% ЦП», означает, что запрос, вероятно, написан не очень хорошо или дизайн схемы не соответствует номиналу. В любом случае, запуск его через параллельный план (если даже возможно с учетом запроса) будет только сервером, чтобы заставить сервер использовать более высокий процессор, чем обычно.
Лучше всего посмотреть на запрос, схему и вспомогательные объекты и настроить их.