Что такое тип ожидания PAGEIOLATCH SH в SQL Server?



у меня есть запрос, который занимает много времени в середине транзакции. Когда я получу wait_type в процессе PAGEIOLATCH_SH.



что означает этот тип ожидания и как это можно решить?

795   2  

2 ответов:

С MSDN:

PAGEIOLATCH_SH

имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в I/O запрос. Запрос защелки находится в общем режиме. Длительное ожидание может указывать на проблемы с дисковой подсистемой.

на практике, это почти всегда происходит из-за большой сканирование больших таблиц. Это почти никогда не происходит в запросах, которые эффективно используют индексы.

если ваш запрос выглядит так:

Select * from <table> where <col1> = <value> order by <PrimaryKey>

, проверьте, что у вас есть составной индекс по (col1, col_primary_key).

если у вас его нет, то вам понадобится либо полный INDEX SCAN если PRIMARY KEY выбирается, или SORT если индекс это.

оба они очень диск I/O длительных операций на больших таблицах.

PAGEIOLATCH_SH тип ожидания обычно появляется в результате фрагментированного или неоптимизированного индекса.

часто причины для чрезмерного PAGEIOLATCH_SH тип ожидания:

  • подсистема ввода-вывода имеет проблему или неправильно настроена
  • перегружена подсистема ввода-вывода другими процессами, которые производят высокую активность ввода-вывода
  • плохое управление индексом
  • логический или физический диск заблуждение
  • сеть проблемы / задержка
  • памяти
  • Синхронное зеркальное отображение и AlwaysOn AG

для того, чтобы попытаться решить, имея высокий PAGEIOLATCH_SH тип ожидания, вы можете увидеть:

  • SQL Server, запросы и индексы, так как очень часто это может быть найдено в качестве основной причины чрезмерного PAGEIOLATCH_SH типы подождать
  • для давления памяти перед прыжком в любую подсистему ввода-вывода устранение неполадок

всегда имейте в виду, что в случае высокой безопасности зеркального отображения или синхронной фиксации доступности в AlwaysOn AG, увеличено / чрезмерно PAGEIOLATCH_SH можно ожидать.

вы можете найти более подробную информацию об этой теме в статье обработка избыточных типов ожидания SQL Server PAGEIOLATCH_SH

Comments

    Ничего не найдено.