Bir örnek MAXDOP
1 olarak ayarlandıysa ve belirli sorguların paralel gitmesine izin vermek için sorgu ipuçları kullanılıyorsa, gerçekte paralel olup olmayacağına karar vermek için SQL tarafından hala Paralellik için Maliyet Eşiği kullanılıyor mu?
Basit cevap: evet .
ayrıntılar
Burada ayrılmak önemli olan birkaç ayrı şey var:
Nedir etkili paralellik maksimum derecede mevcut bir sorguya?
Buna katkıda bulunanlar (genel olarak önem sırasına göre):
- Kaynak Yöneticisi
MAX_DOP
ayarı
- Sorgu ipucu
MAXDOP
ayarı
max degree of parallelism
Örnek yapılandırma seçeneği
Ayrıntılar, Sunucunun “Maks Paralellik Derecesi” ayarında, Kaynak Yöneticisinin MAX_DOP ve sorgu ipucu MAXDOP'ta açıklanmaktadır - SQL Server hangisini kullanmalıdır? Jack Li, Microsoft SQL Server Müşteri Hizmetleri ve Destek Kıdemli Uzman Mühendisi. Aşağıdaki tablo bu bağlantıdan çoğaltılmıştır:
Bir sorgu planı paralellik kullanır mı?
SQL Server sorgu iyileştiricisi her zaman önce bir seri plan bulur *.
O zaman eğer:
- Daha fazla optimizasyon haklı; ve
- En iyi seri planın maliyeti
cost threshold for parallelism
yapılandırma değerini aşıyor
... optimizer paralel bir plan bulmaya çalışacak .
O zaman eğer:
- Paralel bir plan bulunur (yani mümkündür); ve
- Paralel planın maliyeti en iyi seri plandan daha azdır
... paralel bir plan üretilecek.
Not:cost threshold for parallelism
Yalnızca etkileyen bir paralel planı için optimize edici görünüyor olsun. Paralel plan önbelleğe alındıktan sonra, CTFP ayarından bağımsız olarak yeniden kullanıldığında (iş parçacıkları kullanılabilir olduğu sürece) paralellik kullanarak yürütülür.
Örnekler
Her iki örnek için, örneğin maxdop 1 ve sorgu ipucu maxdop 2 ile, mevcut etkili DOP 2'dir. Paralel bir plan seçilirse, DOP 2'yi kullanır.
örnek 1
50 CTFP Verilen ve en ucuz seri planı bulundu 30 maliyetini, SQL Server olacak değil paralel bir planı bulmaya çalışın. Bir seri plan üretilecektir.
ÖRNEK 2
50 CTFP ve en ucuz seri plan 70 maliyet bulundu , SQL Server paralel bir plan bulmaya çalışacaktır . Bu planın (bulunursa) maliyeti 70'den azsa (seri plan maliyeti), paralel bir plan üretilecektir.
Sorgu optimizasyonunun sonucu her zaman tek bir önbellekli plandır: seri veya paralel. Optimize edici, search0 (TP) ve search1 (QP) aşamalarında yalnızca bir seri plan bulur .
Bu olabilir sonra (tarif edildiği gibi) yeniden çalıştırmak search1 bir gereksinime sahip olan bir paralel bir plan üretir. Daha sonra, şimdiye kadarki en iyi plan maliyetine dayalı olarak seri ve paralel arasında bir seçim yapılır. Bu seçim, optimizasyonun search2'ye (Tam Optimizasyon) geçmesi durumunda bağlayıcıdır . Optimizasyonun her aşaması birçok alternatifi göz önünde bulundurur, ancak bir aşamadan elde edilen çıktı her zaman seri veya paralel olan en iyi tek bir plandır.
Myth bu konuda bazılarını yazdım : SQL Server her Paralel Plan ile bir Seri Plan Önbelleğe