Aliasowanie

Poprawa wydajności zapytań w SQL Server

Dean Smith

Founder, Atamai Analytics

Czym jest aliasowanie?

  • Używane w zapytaniach do identyfikacji:
    • Tabel
    • Kolumn
    • Podzapytań
  • Tymczasowe – stosowane tylko podczas wykonywania zapytania
  • Zwiększają czytelność zapytania
  • Mogą być wymagane
Poprawa wydajności zapytań w SQL Server

Dlaczego warto stosować aliasowanie?

  • Unikanie powtarzania długich nazw tabel lub kolumn
  • Łatwa identyfikacja połączonych tabel i powiązanych kolumn
  • Identyfikacja nowych kolumn
  • Identyfikacja podzapytań
  • Unikanie niejednoznaczności, gdy kolumny z połączonych tabel mają tę samą nazwę
  • Zmiana nazw kolumn
Poprawa wydajności zapytań w SQL Server

Połączone tabele – niejednoznaczna nazwa kolumny

SELECT CountryName, 
       Code2, 
       Capital, 
       Pop2017
FROM Nations
INNER JOIN Cities
  ON Capital = CityName;
-----------------------------------------------
-- ERROR, Pop2017 column is in 
both the Nations and Cities tables

Ambiguous column name 'Pop2017'.
Poprawa wydajności zapytań w SQL Server

Połączone tabele – aliasowanie nazw tabel

-- Alias tables; Nations as n and Cities as c
SELECT n.CountryName, 
       n.Code2, 
       n.Capital, 
       c.Pop2017 -- City population
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
... ... ... ...
Poprawa wydajności zapytań w SQL Server

Zmienione nazwy kolumn

-- Alias columns; 
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
... ... ... ...
Poprawa wydajności zapytań w SQL Server

Nowe kolumny

-- New colunm aliased as MaxMagnitude
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
... ... ...
Poprawa wydajności zapytań w SQL Server

Podzapytania

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 
              -- Sub-query aliased as e
    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 Ashgabat 7.3
... ... ...
Poprawa wydajności zapytań w SQL Server

Czas na ćwiczenia!

Poprawa wydajności zapytań w SQL Server

Preparing Video For Download...