Planuri de execuție

Îmbunătățirea performanței interogărilor în SQL Server

Dean Smith

Founder, Atamai Analytics

Faza de optimizare

Faza de optimizare

Îmbunătățirea performanței interogărilor în SQL Server

Faza de optimizare

Faza de optimizare cu descriere

Parametrii de cost evaluați includ:

  • Utilizarea procesorului
  • Utilizarea memoriei
  • Citiri de pagini de date
Îmbunătățirea performanței interogărilor în SQL Server

Faza de optimizare

Faza de optimizare și motorul de execuție

Parametrii de cost evaluați includ:

  • Utilizarea procesorului
  • Utilizarea memoriei
  • Citiri de pagini de date
Îmbunătățirea performanței interogărilor în SQL Server

Informații din planurile de execuție

Planurile de execuție pot oferi informații despre:

  • Dacă au fost utilizați indecși
  • Tipurile de join-uri utilizate
  • Locația și costurile relative ale:
    • condițiilor de filtrare
    • sortării
    • agregărilor
Îmbunătățirea performanței interogărilor în SQL Server

Plan de execuție estimat în SSMS

 

Element de meniu din bara de instrumente SSMS pentru planul de execuție estimat

Îmbunătățirea performanței interogărilor în SQL Server

Plan de execuție estimat în SSMS

 

Element de meniu din bara de instrumente SSMS pentru planul de execuție estimat, cu tooltip

Îmbunătățirea performanței interogărilor în SQL Server

Vizualizarea planurilor de execuție în SSMS

Plan de execuție în SSMS

Îmbunătățirea performanței interogărilor în SQL Server

Statistici ale operatorilor

Statistici ale operatorului din planul de execuție

Îmbunătățirea performanței interogărilor în SQL Server

Citirea planurilor de execuție

Operatori din planul de execuție

Îmbunătățirea performanței interogărilor în SQL Server

Exemplu cu index

SELECT * 
FROM Customers
WHERE CustomerID = 'PARIS';

Operator Table Scan

SELECT * 
FROM CustomersCI
WHERE CustomerID = 'PARIS';

Operator Clustered Index Seek

Îmbunătățirea performanței interogărilor în SQL Server

Exemplu cu operatorul Sort

SELECT FruitName, FruitType
FROM Fruits1

UNION

SELECT FruitName, FruitType
FROM Fruits2;

Plan de execuție cu UNION

SELECT FruitName, FruitType
FROM Fruits1

UNION ALL

SELECT FruitName, FruitType
FROM Fruits2;

Plan de execuție cu UNION ALL

Îmbunătățirea performanței interogărilor în SQL Server

Același plan de execuție?

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

Plan de execuție pentru IN și EXISTS

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

Plan de execuție pentru IN și EXISTS

Îmbunătățirea performanței interogărilor în SQL Server

Să exersăm!

Îmbunătățirea performanței interogărilor în SQL Server

Preparing Video For Download...