Antworten:
Aus der Microsoft-Dokumentation :
PAGEIOLATCH_SHTritt auf, wenn eine Aufgabe in einem Latch auf einen Puffer wartet, der sich in einer
I/OAnforderung 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 SCANwenn die PRIMARY KEYausgewählt ist, oder eine, SORTwenn ein Index für col1ausgewählt ist.
Beide sind sehr festplattenintensive I/OVorgänge für große Tabellen.
SQL for Smartiesund 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_SHWarten:
Um zu versuchen, eine hohe PAGEIOLATCH_SHWartezeit zu beheben , können Sie Folgendes überprüfen:
PAGEIOLATCH_SHWartezeiten 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_SHzu rechnen ist.
Weitere Informationen zu diesem Thema finden Sie im Artikel Umgang mit übermäßigen SQL Server PAGEIOLATCH_SH-Wartetypen