Назад | Перейти на главную страницу

Может ли SQL Server иметь узкое место ЦП, когда время процессора меньше 30%

Может ли в принципе ЦП быть узким местом на сервере SQL, если процессор счетчика производительности: время процессора постоянно меньше 30% на всех ядрах? Или низкое время процессора автоматически позволяет мне исключить процессор как потенциальный источник проблем?

Я спрашиваю об этом, потому что SQL Nexus называет ЦП самым узким местом на сервере с низкими значениями времени процессора.

В случаях, когда в запросе выполняется много синхронных операций, ЦП может стать узким местом, даже если ЦП сообщает о наличии свободных циклов. Возможности многопоточности ограничены. По мере того, как количество ядер процессора продолжает увеличиваться, вы, вероятно, увидите этот сценарий. Единственное, что вы можете сделать, это получить более быстрые ядра ЦП или посмотреть, какой вид оптимизации можно сделать с запросом / базой данных.

Следует обратить внимание на время ожидания SQL. Есть DMV, которые могут посеять то, чего ждет система. смотреть на Брент Озар сайт для более подробной информации.

На что следует обратить внимание: SQL-сервер (по умолчанию) будет использовать многопоточную параллельную обработку для запросов, которые, как ожидается, займут больше 10 секунд или около того. Иногда это просто не подходит для типа выполняемого запроса, и вы получаете очень большое время CX_WAIT, когда разные потоки должны взаимодействовать и синхронизироваться друг с другом. Вы можете повысить пропускную способность (больше транзакций в секунду, даже если каждая транзакция занимает больше времени), установив это значение выше (на сервере) или с помощью подсказки к запросу. (См. Подробности в Google!)

Есть ли в ваших запросах много сложных манипуляций со строками? Или функции CLR?

SQL, скорее всего, будет привязан к ДИСКУ, а затем к ограничению скорости ОЗУ, прежде чем будет ограничен только ЦП.

Если у вас большая длина очереди процессора, теоретически у вас может быть узкое место в процессоре.