Antworten:
Aus der Microsoft-Dokumentation :
PAGEIOLATCH_SH
Tritt auf, wenn eine Aufgabe in einem Latch auf einen Puffer wartet, der sich in einer
I/O
Anforderung befindet. Die Latch-Anforderung befindet sich im freigegebenen Modus. Lange Wartezeiten können auf Probleme mit dem Festplattensubsystem hinweisen.
In der Praxis geschieht dies fast immer aufgrund großer Scans über großen Tischen. Es kommt fast nie bei Abfragen vor, bei denen Indizes effizient verwendet werden.
Wenn Ihre Anfrage so ist:
Select * from <table> where <col1> = <value> order by <PrimaryKey>
Überprüfen Sie, ob Sie einen zusammengesetzten Index haben (col1, col_primary_key)
.
Wenn Sie keine haben, benötigen Sie entweder eine vollständige, INDEX SCAN
wenn die PRIMARY KEY
ausgewählt ist, oder eine, SORT
wenn ein Index für col1
ausgewählt ist.
Beide sind sehr festplattenintensive I/O
Vorgänge für große Tabellen.
SQL for Smarties
und Thinking in Sets
) und natürlich meinen Blog
PAGEIOLATCH_SH
Der Wartetyp wird normalerweise als Ergebnis eines fragmentierten oder nicht optimierten Index angezeigt.
Oft sind Gründe für übermäßiges PAGEIOLATCH_SH
Warten:
Um zu versuchen, eine hohe PAGEIOLATCH_SH
Wartezeit zu beheben , können Sie Folgendes überprüfen:
PAGEIOLATCH_SH
Wartezeiten angesehen werden kannDenken Sie immer daran, dass im Falle einer hohen Sicherheitsspiegelung oder der Verfügbarkeit von Synchron-Commits in der AlwaysOn AG mit einem Anstieg / Übermaß PAGEIOLATCH_SH
zu rechnen ist.
Weitere Informationen zu diesem Thema finden Sie im Artikel Umgang mit übermäßigen SQL Server PAGEIOLATCH_SH-Wartetypen