Takma adlama

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

Dean Smith

Founder, Atamai Analytics

Takma adlama nedir?

  • Sorgularda şunları belirtmek için kullanılır:
    • Tablolar
    • Sütunlar
    • Alt sorgular
  • Geçicidir; yalnızca sorgu çalıştığında uygulanır
  • Sorguyu okumayı kolaylaştırır
  • Zorunlu olabilir
SQL Server'da Sorgu Performansını İyileştirme

Neden takma ad kullanılır?

  • Uzun tablo/sütun adlarının tekrarını önleyin
  • Birleştirilen tabloları ve ilgili sütunları kolayca tanımlayın
  • Yeni sütunları belirtin
  • Alt sorguları belirtin
  • Aynı ada sahip sütunlar olduğunda belirsizliği önleyin
  • Sütunları yeniden adlandırın
SQL Server'da Sorgu Performansını İyileştirme

Birleştirilen tablolar - belirsiz sütun adı

SELECT CountryName, 
       Code2, 
       Capital, 
       Pop2017
FROM Nations
INNER JOIN Cities
  ON Capital = CityName;
-----------------------------------------------
-- HATA, Pop2017 sütunu hem 
Nations hem de Cities tablolarında var

Belirsiz sütun adı 'Pop2017'.
SQL Server'da Sorgu Performansını İyileştirme

Birleştirilen tablolar - tablo adlarına takma ad verme

-- Tablo takma adları; Nations için n, Cities için c
SELECT n.CountryName, 
       n.Code2, 
       n.Capital, 
       c.Pop2017 -- Şehir nüfusu
FROM Nations AS n
INNER JOIN Cities AS c
  ON n.Capital = c.CityName;
CountryName Code2 Capital Pop2017
United Kingdom GB London 346774
Canada CA Ottawa 874433
France FR Paris 10437
Reunion RE Saint-Denis 1067
... ... ... ...
SQL Server'da Sorgu Performansını İyileştirme

Yeniden adlandırılmış sütunlar

-- Sütunlara takma ad ver; 
SELECT n.CountryName AS Country, 
       n.Code2 AS CountryCode, 
       n.Capital, 
       c.Pop2017 AS Population
FROM Nations AS n
INNER JOIN Cities AS c
  ON n.Capital = c.CityName;
Country CountryCode Capital Population
United Kingdom GB London 346774
Canada CA Ottawa 874433
France FR Paris 10437
Reunion RE Saint-Denis 1067
... ... ... ...
SQL Server'da Sorgu Performansını İyileştirme

Yeni sütunlar

-- Yeni sütuna MaxMagnitude takma adı verildi
SELECT Country, 
       NearestPop AS City,
       MAX(Magnitude) AS MaxMagnitude
FROM Earthquakes 
GROUP BY Country, NearestPop;
Country City MaxMagnitude
PE Acar 7.1
US Aguadilla 7.7
MX Aguililla 7.2
PW Airai 7.8
PG Aitape 7.6
... ... ...
SQL Server'da Sorgu Performansını İyileştirme

Alt sorgular

SELECT n.CountryName AS Country, 
       n.Capital, 
       e.MaxMagnitude
FROM Nations n
INNER JOIN
        (SELECT Country, NearestPop AS City
                ,MAX(Magnitude) AS MaxMagnitude
        FROM Earthquakes 
        GROUP BY Country, NearestPop) e 
              -- Alt sorguya e takma adı verildi
    ON n.Code2 = e.Country AND n.Capital = e.City;
Country Capital MaxMagnitude
Fiji Suva 7.9
Guam Hagatna 7.8
Peru Lima 7.6
Turkmenistan Aşkabat 7.3
... ... ...
SQL Server'da Sorgu Performansını İyileştirme

Hadi pratik yapalım

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

Preparing Video For Download...