Bir işlemin ortasında uzun süren bir sorgum var. wait_typeSürecin ne olduğunu anladığımda öyle PAGEIOLATCH_SH.
Bu bekleme türü ne anlama geliyor ve bu nasıl çözülebilir?
Yanıtlar:
Gönderen Microsoft belgelerinde :
PAGEIOLATCH_SHBir görev,
I/Oistekte bulunan bir arabellek için bir mandalı beklediğinde oluşur . Mandal isteği Paylaşılan modda. Uzun beklemeler, disk alt sistemiyle ilgili sorunları gösterebilir.
Pratikte, bu neredeyse her zaman büyük masalar üzerindeki büyük taramalar nedeniyle olur. Dizinleri verimli bir şekilde kullanan sorgularda neredeyse hiç olmaz.
Sorgunuz şöyle ise:
Select * from <table> where <col1> = <value> order by <PrimaryKey>
, bileşik dizininiz olup olmadığını kontrol edin (col1, col_primary_key).
Eğer bir tane yoksa, o zaman ya bir tam gerekir INDEX SCANeğer PRIMARY KEYseçilirse veya SORTbir dizin üzerinde eğer col1seçilir.
Her ikisi de I/Obüyük tablolarda çok disk tüketen işlemlerdir.
SQL for Smartiesve Thinking in Sets) ve tabii ki
PAGEIOLATCH_SH bekleme türü genellikle parçalanmış veya optimize edilmemiş dizinin bir sonucu olarak ortaya çıkar.
Genellikle aşırı PAGEIOLATCH_SHbekleme türünün nedenleri şunlardır:
Yüksek PAGEIOLATCH_SHbekleme türüne sahip olmayı denemek ve çözmek için şunları kontrol edebilirsiniz:
PAGEIOLATCH_SHbekleme türlerinin temel nedeni olarak bulunabilir.AlwaysOn AG'de yüksek güvenlikli Yansıtma veya eşzamanlı kesinleştirme kullanılabilirliği durumunda, artmış / aşırılık PAGEIOLATCH_SHbeklenebileceğini daima unutmayın.
Bu konuyla ilgili daha fazla ayrıntıyı Aşırı SQL Server PAGEIOLATCH_SH bekleme türlerini işleme makalesinde bulabilirsiniz.