Plany wykonania

Poprawa wydajności zapytań w SQL Server

Dean Smith

Founder, Atamai Analytics

Faza optymalizacji

Faza optymalizacji

Poprawa wydajności zapytań w SQL Server

Faza optymalizacji

Faza optymalizacji z opisem

Oceniane parametry kosztów:

  • Użycie procesora
  • Użycie pamięci
  • Odczyty stron danych
Poprawa wydajności zapytań w SQL Server

Faza optymalizacji

Faza optymalizacji i silnik wykonania

Oceniane parametry kosztów:

  • Użycie procesora
  • Użycie pamięci
  • Odczyty stron danych
Poprawa wydajności zapytań w SQL Server

Informacje z planów wykonania

Plany wykonania dostarczają informacji o:

  • Użyciu indeksów
  • Typach stosowanych złączeń
  • Lokalizacji i relatywnych kosztach:
    • warunków filtrowania
    • sortowania
    • agregacji
Poprawa wydajności zapytań w SQL Server

Szacowany plan wykonania w SSMS

 

Element paska narzędzi SSMS – szacowany plan wykonania

Poprawa wydajności zapytań w SQL Server

Szacowany plan wykonania w SSMS

 

Element paska narzędzi SSMS – szacowany plan wykonania z etykietą

Poprawa wydajności zapytań w SQL Server

Przeglądanie planów wykonania w SSMS

Plan wykonania w SSMS

Poprawa wydajności zapytań w SQL Server

Statystyki operatora

Statystyki operatora planu wykonania

Poprawa wydajności zapytań w SQL Server

Odczytywanie planów wykonania

Operatory planu wykonania

Poprawa wydajności zapytań w SQL Server

Przykład indeksu

SELECT * 
FROM Customers
WHERE CustomerID = 'PARIS';

Operator skanowania tabeli

SELECT * 
FROM CustomersCI
WHERE CustomerID = 'PARIS';

Operator wyszukiwania w indeksie klastrowym

Poprawa wydajności zapytań w SQL Server

Przykład operatora sortowania

SELECT FruitName, FruitType
FROM Fruits1

UNION

SELECT FruitName, FruitType
FROM Fruits2;

Plan wykonania z UNION

SELECT FruitName, FruitType
FROM Fruits1

UNION ALL

SELECT FruitName, FruitType
FROM Fruits2;

Plan wykonania z UNION ALL

Poprawa wydajności zapytań w SQL Server

Ten sam plan wykonania?

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

Plan wykonania dla IN i EXISTS

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

Plan wykonania dla IN i EXISTS

Poprawa wydajności zapytań w SQL Server

Czas na ćwiczenia!

Poprawa wydajności zapytań w SQL Server

Preparing Video For Download...