Plány spuštění

Improving Query Performance in SQL Server

Dean Smith

Founder, Atamai Analytics

Fáze optimalizace

Fáze optimalizace

Improving Query Performance in SQL Server

Fáze optimalizace

Fáze optimalizace s popisem

Hodnocené nákladové parametry:

  • Využití procesoru
  • Využití paměti
  • Čtení datových stránek
Improving Query Performance in SQL Server

Fáze optimalizace

Fáze optimalizace a prováděcí modul

Hodnocené nákladové parametry:

  • Využití procesoru
  • Využití paměti
  • Čtení datových stránek
Improving Query Performance in SQL Server

Informace z plánů spuštění

Plány spuštění poskytují informace o:

  • Využití indexů
  • Typech použitých spojení
  • Umístění a relativních nákladech:
    • podmínek filtrování
    • řazení
    • agregací
Improving Query Performance in SQL Server

Odhadovaný plán spuštění v SSMS

 

Položka nabídky panelu nástrojů SSMS pro odhadovaný plán spuštění

Improving Query Performance in SQL Server

Odhadovaný plán spuštění v SSMS

 

Položka nabídky panelu nástrojů SSMS pro odhadovaný plán spuštění s popiskem

Improving Query Performance in SQL Server

Zobrazení plánů spuštění v SSMS

Plán spuštění v SSMS

Improving Query Performance in SQL Server

Statistiky operátoru

Statistiky operátoru plánu spuštění

Improving Query Performance in SQL Server

Čtení plánů spuštění

Operátory plánu spuštění

Improving Query Performance in SQL Server

Příklad s indexem

SELECT * 
FROM Customers
WHERE CustomerID = 'PARIS';

Operátor prohledání tabulky

SELECT * 
FROM CustomersCI
WHERE CustomerID = 'PARIS';

Operátor vyhledávání v clusterovaném indexu

Improving Query Performance in SQL Server

Příklad operátoru řazení

SELECT FruitName, FruitType
FROM Fruits1

UNION

SELECT FruitName, FruitType
FROM Fruits2;

Plán spuštění s UNION

SELECT FruitName, FruitType
FROM Fruits1

UNION ALL

SELECT FruitName, FruitType
FROM Fruits2;

Plán spuštění s UNION ALL

Improving Query Performance in SQL Server

Stejný plán spuštění?

SELECT * 
FROM Customers
WHERE CustomerID IN 
    (SELECT CustomerID 
     FROM Orders);

Plán spuštění pro IN a EXISTS

SELECT * 
FROM Customers c
WHERE EXISTS
    (SELECT 1 
     FROM Orders o 
     WHERE c.CustomerID = o.CustomerID);

Plán spuštění pro IN a EXISTS

Improving Query Performance in SQL Server

Pojďme procvičovat!

Improving Query Performance in SQL Server

Preparing Video For Download...