Alternatif yöntemler 2

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

Dean Smith

Founder, Atamai Analytics

INNER JOIN

SELECT c.CustomerID
      ,c.CompanyName
      ,o.OrderID
      ,o.OrderDate
      ,o.ShippedDate
      ,o.Freight
FROM Customers c
INNER JOIN Orders o
    ON c.CustomerID = o.CustomerID
CustomerID CompanyName OrderID ...
VINET Vins et alcools Chevalier 10248 ...
HANAR Hanari Carnes 10250 ...
VICTE Victuailles en stock 10251 ...
SUPRD Suprêmes délices 10252 ...
... ... ... ...
SQL Server'da Sorgu Performansını İyileştirme

LEFT OUTER JOIN

Kapsayıcı LEFT OUTER JOIN

Venn Diyagramı Kapsayıcı Left Outer Join

Ayrık LEFT OUTER JOIN

Venn Diyagramı Ayrık Left Outer Join

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

Ayrık LEFT OUTER JOIN

SELECT c.CustomerID
      ,c.CompanyName
      ,o.OrderID
      ,o.OrderDate
      ,o.ShippedDate
      ,o.Freight
FROM Customers c
LEFT OUTER JOIN Orders o
    ON c.CustomerID = o.CustomerID
WHERE o.CustomerID IS NULL
CustomerID CompanyName OrderID ...
FISSA FISSA Fabrica Inter. Salchichas S.A. NULL ...
PARIS Paris spécialités NULL ...
SQL Server'da Sorgu Performansını İyileştirme

Gözden geçirme: INTERSECT ve EXCEPT

INTERSECT: varlığı kontrol eder

EXCEPT: yokluğu kontrol eder

Avantajlar

  • Veri sorgulaması için idealdir
  • Dönen sonuçlardan yinelenenleri kaldırır

Dezavantaj

  • SELECT ifadesindeki sütun sayısı ve sırası sorgular arasında aynı olmalıdır
SQL Server'da Sorgu Performansını İyileştirme

Gözden geçirme: EXISTS ve NOT EXISTS

EXISTS: varlığı kontrol eder

NOT EXISTS: yokluğu kontrol eder

Avantajlar

  • Alt sorgu TRUE olur olmaz aramayı durdurur
  • Sonuçlar dış sorgudan herhangi bir sütunu, herhangi bir sırada içerebilir

Dezavantaj

  • Sonuçlar yalnızca dış sorgudaki sütunları içerebilir
SQL Server'da Sorgu Performansını İyileştirme

Gözden geçirme: IN ve NOT IN

IN: varlığı kontrol eder

NOT IN: yokluğu kontrol eder

Avantaj

  • Sonuçlar dış sorgudan herhangi bir sütunu, herhangi bir sırada içerebilir

Dezavantajlar

  • Sonuçlar yalnızca dış sorgudaki sütunları içerebilir
  • Alt sorgudaki null işlemesi nedeniyle NOT IN hiç sonuç döndürmeyebilir
SQL Server'da Sorgu Performansını İyileştirme

Gözden geçirme: INNER JOIN ve ayrık L.O.J

INNER JOIN: varlığı kontrol eder

ayrık LEFT OUTER JOIN: yokluğu kontrol eder

Avantaj

  • Sonuçlar tüm birleştirilen sorgulardan herhangi bir sütunu, herhangi bir sırada içerebilir

Dezavantaj

  • Ayrık LEFT OUTER JOIN için IS NULL WHERE koşulu ekleme gerekliliği
SQL Server'da Sorgu Performansını İyileştirme

Hadi pratik yapalım!

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

Preparing Video For Download...