-
- Üyelik Tarihi
- 24 Mar 2017
-
- Mesajlar
- 4,578
-
- MFC Puanı
- 1,437
Live Query Statistics özelliği ilk olarak Sql Server 2016 CTP 2.1 sürümü ile birlikte duyuruldu. Aktif sorgunun çalışma planını canlı olarak bizlere sunan bu yeni özellik ile, sorgulardaki performans sorunlarını ve hata bulmayı daha kolaylıkla yapabileceğiz.
Bu makaledeki örnekler, Sql Server 2016 CTP 2.3 sürümü ile anlatılmıştır. Ana sürüm çıktıktan sonra versiyon değişiklikleri olabilir. Sorgu örnekleri için AdventurkWorks2014 veritabanı kullanılmıştır.
Sorgu ekranlarında Live Query Statistics özelliğini aktif etmek için, sorguyu çalıştırmadan önce üstteki menülerden Include Live Query Statistics butonuna tıklıyoruz.
LQS -1
Sorgu çalışmaya başladığında, sonuç alanına bir sekme daha geliyor.
LQS 2
Sorgu çalışırken yukardaki şekil LQS-2 deki gibi hareketli olarak operatörler arası noktalı oklar ile çalışmayı gösteriyor. Çalışan operatörün hangi aşamada olduğu yüzdesel olarak operatörün altında gösteriliyor.
Tamamlanan operatör ise içi dolu oklar ile gösteriliyor.
LQS 3
Sonuca yaklaşıldığında, oklar inceden kalına doğru değişiyor. Bir sorgu çalışırken canlı olarak neler olduğunu hangi aşamaların ne durumda olduklarını bu özellik sayesinde görebileceğiz.
Live Query Statisticsin diğer güzel bir özelliği de, her operatörde kaç satır çalıştığının bilgisinin vermesi. Operatörün üzerine tıkladığımızda, açılan pop-up ekranında ve yanda taraftaki properties ekranında Actual Number of Rows alanında satır sayısı bilgisi canlı olarak, yani sorgu devam ederken de verebiliyor.
LQS 4
Operatörün üzerine geldiğimizde, Actual Number of Rows gözükmekte.
LQS 5
Bu sorguda iki tabloyu cross join ile bağlanmıştık. Diğer iki tablonun da anlık olarak satır sayılarının bilgisini veriyor. Sorgudaki iki tablonun satır sayılarına bakalım.
Employee tablosunda 290 satır
Person tablosunda da 19972 satır var, bu iki tabloyu cross join ile birleştirdiğimizde 290 * 19972 = 5791880 satır yapıyor.
LQS 6
Activity monitör üzerinde de büyük sorguların execution planlarını canlı olarak izleyebilirsiniz. İlk olarak Activity Monitorü açıyoruz.
LQS 7
Active Expensive Queries bölümüne aktif olarak çalışan büyük sorgular gelmektedir. Çalışan sorgunun üzerinde sağ tıklayarak Show Live Execution Plana tıkladığımızda Live Query sayfası yeni sekme olarak açılmaktadır.
LQS 8
Live Execution planların sorgularda etkili olması için, SET STATISTICS PROFILE ON veya SET STATISTICS XML ON komutlarını sorguların başında kullanmanız gerekiyor, eğer bu komutlar olmadan sorgular çalışır ise, Active Expensice Queries ekranına sorgularınız gelmeyecektir.
Live Query Statisticsin bazı kısıtlamaları vardır, bunlar;
- Columnstore indeksler desteklenmemektedir.
- Memory-optimized tablolarda çalışmamaktadır.
- Tekil olarak çalıştırılan stored procedureları desteklememektedir.
Live Query Planlar daha çok native çalışan sorgularda darboğazları tespit etmek için kullanılacaktır. Performans sıkıntılarına yol açan darboğazların tespitinde kullanılacak bir özellik olarak ana sürümde yerini alacaktır.
Bu makaledeki örnekler, Sql Server 2016 CTP 2.3 sürümü ile anlatılmıştır. Ana sürüm çıktıktan sonra versiyon değişiklikleri olabilir. Sorgu örnekleri için AdventurkWorks2014 veritabanı kullanılmıştır.
Sorgu ekranlarında Live Query Statistics özelliğini aktif etmek için, sorguyu çalıştırmadan önce üstteki menülerden Include Live Query Statistics butonuna tıklıyoruz.

LQS -1
Sorgu çalışmaya başladığında, sonuç alanına bir sekme daha geliyor.

LQS 2
Sorgu çalışırken yukardaki şekil LQS-2 deki gibi hareketli olarak operatörler arası noktalı oklar ile çalışmayı gösteriyor. Çalışan operatörün hangi aşamada olduğu yüzdesel olarak operatörün altında gösteriliyor.
Tamamlanan operatör ise içi dolu oklar ile gösteriliyor.

LQS 3
Sonuca yaklaşıldığında, oklar inceden kalına doğru değişiyor. Bir sorgu çalışırken canlı olarak neler olduğunu hangi aşamaların ne durumda olduklarını bu özellik sayesinde görebileceğiz.
Live Query Statisticsin diğer güzel bir özelliği de, her operatörde kaç satır çalıştığının bilgisinin vermesi. Operatörün üzerine tıkladığımızda, açılan pop-up ekranında ve yanda taraftaki properties ekranında Actual Number of Rows alanında satır sayısı bilgisi canlı olarak, yani sorgu devam ederken de verebiliyor.

LQS 4
Operatörün üzerine geldiğimizde, Actual Number of Rows gözükmekte.

LQS 5
Bu sorguda iki tabloyu cross join ile bağlanmıştık. Diğer iki tablonun da anlık olarak satır sayılarının bilgisini veriyor. Sorgudaki iki tablonun satır sayılarına bakalım.
Employee tablosunda 290 satır
Person tablosunda da 19972 satır var, bu iki tabloyu cross join ile birleştirdiğimizde 290 * 19972 = 5791880 satır yapıyor.

LQS 6
Activity monitör üzerinde de büyük sorguların execution planlarını canlı olarak izleyebilirsiniz. İlk olarak Activity Monitorü açıyoruz.

LQS 7
Active Expensive Queries bölümüne aktif olarak çalışan büyük sorgular gelmektedir. Çalışan sorgunun üzerinde sağ tıklayarak Show Live Execution Plana tıkladığımızda Live Query sayfası yeni sekme olarak açılmaktadır.

LQS 8
Live Execution planların sorgularda etkili olması için, SET STATISTICS PROFILE ON veya SET STATISTICS XML ON komutlarını sorguların başında kullanmanız gerekiyor, eğer bu komutlar olmadan sorgular çalışır ise, Active Expensice Queries ekranına sorgularınız gelmeyecektir.
Live Query Statisticsin bazı kısıtlamaları vardır, bunlar;
- Columnstore indeksler desteklenmemektedir.
- Memory-optimized tablolarda çalışmamaktadır.
- Tekil olarak çalıştırılan stored procedureları desteklememektedir.
Live Query Planlar daha çok native çalışan sorgularda darboğazları tespit etmek için kullanılacaktır. Performans sıkıntılarına yol açan darboğazların tespitinde kullanılacak bir özellik olarak ana sürümde yerini alacaktır.