Zaman istatistikleri

SQL Server'da Sorgu Performansını İyileştirme

Dean Smith

Founder, Atamai Analytics

SQL Server Management Studio

 

SQL Server Management Studio açılış ekranı

SQL Server'da Sorgu Performansını İyileştirme

SSMS'de STATISTICS TIME

SELECT UNStatisticalRegion, 
        CountryName,
        Capital
FROM Nations
WHERE Capital IN 
        (SELECT CityName 
        FROM Cities)
            AND Capital IN 
                (SELECT CityName 
                    FROM Cities 
                    WHERE Pop2017 > 1000000);

STATISTICS TIME - komutu bir sorguyu ayrıştırmak, derlemek ve yürütmek için gereken milisaniyeleri raporlar.

SQL Server ayrıştırma ve derleme süresi: 
   CPU süresi = 16 ms, geçen süre = 21 ms.

(88 satır etkilendi)

 SQL Server Yürütme Süreleri:
   CPU süresi = 390 ms,  geçen süre = 382 ms.
SQL Server'da Sorgu Performansını İyileştirme

SQL Server Yürütme Süreleri

 SQL Server Yürütme Süreleri:
   CPU süresi = 390 ms,  geçen süre = 382 ms.
  • CPU süresi: sunucu işlemcilerinin sorguyu işleme süresi
  • Geçen süre: sorgunun toplam süresi
SQL Server'da Sorgu Performansını İyileştirme

Örnek: sorgu 1

SELECT UNStatisticalRegion, 
       CountryName,
       Capital
FROM Nations
WHERE Capital IN 
        (SELECT CityName -- 1. alt sorgu
        FROM Cities) 
            AND Capital IN 
                (SELECT CityName -- 2. alt sorgu
                 FROM Cities 
                 WHERE Pop2017 > 1000000); 
SQL Server'da Sorgu Performansını İyileştirme

Örnek: sorgu 1

SET STATISTICS TIME ON
SELECT UNStatisticalRegion, 
       CountryName,
       Capital
FROM Nations
WHERE Capital IN 
        (SELECT CityName -- 1. alt sorgu
        FROM Cities) 
            AND Capital IN 
                (SELECT CityName -- 2. alt sorgu
                 FROM Cities 
                 WHERE Pop2017 > 1000000); 
SQL Server Yürütme Süreleri:
   CPU süresi = 391 ms, geçen süre = 381 ms.
SQL Server'da Sorgu Performansını İyileştirme

Örnek: sorgu 2

SELECT UNStatisticalRegion, 
       CountryName,
       Capital 
FROM Nations n
WHERE EXISTS 
    (SELECT 1 
     FROM  Cities c 
     WHERE n.Capital = c.CityName
        AND Pop2017 > 1000000);


SQL Server Yürütme Süreleri:
   CPU süresi = 0 ms, geçen süre = 2 ms.
SQL Server'da Sorgu Performansını İyileştirme

Örnek: sorgu 2

SELECT UNStatisticalRegion, 
       CountryName,
       Capital 
FROM Nations n
WHERE EXISTS 
    (SELECT 1 
     FROM  Cities c 
     WHERE n.Capital = c.CityName
        AND Pop2017 > 1000000);
SET STATISTICS TIME OFF
SQL Server Yürütme Süreleri:
   CPU süresi = 0 ms, geçen süre = 2 ms.
SQL Server'da Sorgu Performansını İyileştirme

Sorguların karşılaştırılması

  • İki alt sorgu içeren ilk sorgu
SELECT UNStatisticalRegion, 
       CountryName,
       Capital
FROM Nations
WHERE Capital IN 
        (SELECT CityName 
        FROM Cities)
            AND Capital IN 
                (SELECT CityName 
                 FROM Cities 
                 WHERE Pop2017 > 1000000);
SQL Server Yürütme Süreleri:
   CPU süresi = 391 ms, geçen süre = 381 ms.
  • EXISTS kullanan ikinci sorgu
SELECT UNStatisticalRegion, 
       CountryName,
       Capital 
FROM Nations n
WHERE EXISTS 
    (SELECT 1 
     FROM  Cities c 
     WHERE n.Capital = c.CityName
        AND Pop2017 > 1000000);
SQL Server Yürütme Süreleri:
   CPU süresi = 0 ms, geçen süre = 2 ms.
SQL Server'da Sorgu Performansını İyileştirme

Geçen süre ve CPU süresi

Geçen süre

  • Sorgu zaman istatistiklerini incelerken değişken olabilir
  • En hızlı sorgu için en iyi zaman ölçüsüdür

CPU süresi

  • Sorgu zaman istatistiklerini incelerken az değişmelidir
  • Sunucu işlemcileri paralel çalışıyorsa yararlı olmayabilir
SQL Server'da Sorgu Performansını İyileştirme

Ortalama almak

  • Tek ölçüme güvenmeyin, ortalama alınız.
geçen süre = 2032 ms.

geçen süre = 2060 ms.

geçen süre = 1915 ms.

geçen süre = 4009 ms.

geçen süre = 3511 ms.

Ortalama geçen süre = 2705 ms.
SQL Server'da Sorgu Performansını İyileştirme

Hadi pratik yapalım!

SQL Server'da Sorgu Performansını İyileştirme

Preparing Video For Download...