Microsoft SQL Server 2016 SP2-CU6 (13.0.5292.0) 4 vCPU VM'de max degree of parallelism
ayarlanmış 2
ve cost threshold for parallelism
ayarlanmış olarak çalıştırıyorum 50
.
Sabahları, SELECT TOP 100 sorgusu için bir Tahmini Yürütme Planı görüntülemeye çalışırken , büyük beklemelerle karşılaşıyorum ve tahmini planı oluşturma işlemi genellikle 5 - 7 dakikalık aralıklarla dakikalar alıyor. Yine, bu sorgu gerçek yürütme değil, bu sadece bir tahmini yürütme planı görüntüleme işlemidir .
sp_WhoIsActive
ya PAGEIOLATCH_SH
bekler ya da LATCH_EX [ACCESS_METHODS_DATASET_PARENT]
bekler gösterir ve Paul Randal'ın WaitingTasks.sql komut dosyasını işlem sırasında çalıştırdığınızda CXPACKET
çalışan iş parçacığı PAGEIOLATCH_SH
beklemeler gösteren bekler gösterir:
* kaynak açıklama alanı = exchangeEvent id=Port5f6069e600 WaitType=e_waitPortOpen waiterType=Coordinator nodeId=1 tid=0 ownerActivity=notYetOpened waiterActivity=waitForAllOwnersToOpen
Çalışan iş parçacıkları tüm stats
tabloyu belleğe getiriyor gibi görünüyor (bu sayfa numaralarının yanı sıra Paul Randal'ın sorgu noktasından gösterilen sonraki sayfa numaraları stats
tablo için kümelenmiş anahtara geri döndüğü için ). Plan geri geldiğinde, temelde günün geri kalanı için anlıktır, hatta stats
sadece çeşitli kayıtlarla önbellekten tablo yıpranmasının çoğunu gördükten sonra bile (benzer sorgulardan işlemler aramak için çekildiğini varsayıyorum).
Sorgu gerçekten SCAN işleçlerini kullanan bir planla yürütüyor olsaydı, bu ilk davranışı bekliyordum, ancak bunu neden yalnızca yukarıdaki bağlantı planında gösterildiği gibi bir SEEK operatörüne ulaşmak için yürütme planlarını değerlendirirken yapıyor? Buradaki performansı artırmak için ne yapabilirim (bu ifadeyi çalışma saatlerinden önce çalıştırmamın yanı sıra verilerim uygun şekilde önbelleğe alınabilir)? Ben bir çift kapsayan endeksleri yararlı olacağını varsayıyorum, ama onlar gerçekten herhangi bir davranış değişikliği garanti eder misiniz? Burada bazı depolama ve bakım penceresi sınırlamaları içinde çalışmak zorunda ve sorguyu kendisi bir satıcı çözüm üretilir, böylece diğer öneriler (yanı sıra daha iyi dizinleme) bu noktada kabul edilir.