SQL Server Некоторые ЦП на 100%, другие под 10%, Тайм-аут запросов - PullRequest
0 голосов
/ 08 апреля 2019

У меня странное происшествие, которое я пытаюсь устранить, и задаюсь вопросом, не сталкивался ли кто-либо с подобными проблемами и / или у него есть какие-либо предложения.

У меня есть запрос (не самый лучший, не самый плохой), в котором есть несколько похожих объединений (в основном это разные данные из одной и той же таблицы и объединяются все вместе), который затем выполняется на нескольких процессорах (сервер имеет один сокет 12 процессоров; сервер SQL имеет максимальную степень параллелизма 4 и порог параллелизма по стоимости 55)

Ожидаемое поведение : тогда этот запрос будет выполняться на четырех процессорах; что он будет максимально использовать эти четыре процессора (т.е. на 100%); что он будет генерировать количество ожиданий CXPACKET; и что это закончится; также, что другие поступающие запросы будут затем обрабатывать другие процессоры и работать так же, как если бы этот запрос не выполнялся (то есть другие процессоры выполняли бы на 10% другие запросы)

Фактическое поведение : похоже, что при выполнении этого запроса четыре ЦП переходят на 100%; что существует несколько ожиданий CXPACKET; что другие процессоры показывают загрузку (5-8%); что этот запрос завершается и возвращает результаты; однако другие запросы выполняются по тайм-ауту / не завершены / и т. д. (обычно не выполняются)

Есть идеи, что там может происходить? Я чувствую, что есть некоторая странность SQL Server, о которой я не знаю? То, что другие запросы не обрабатываются должным образом (может быть, по какой-то причине пытаются запустить те же процессоры?) Что, возможно, существует какая-то настройка или элемент управления, которые могут решить эту проблему?

...