Piani di esecuzione

Migliorare le prestazioni delle query in SQL Server

Dean Smith

Founder, Atamai Analytics

Fase di ottimizzazione

Fase di ottimizzazione

Migliorare le prestazioni delle query in SQL Server

Fase di ottimizzazione

Fase di ottimizzazione con descrizione

I parametri di costo valutati includono:

  • Uso della CPU
  • Uso della memoria
  • Letture di pagine dati
Migliorare le prestazioni delle query in SQL Server

Fase di ottimizzazione

Fase di ottimizzazione e motore di esecuzione

I parametri di costo valutati includono:

  • Uso della CPU
  • Uso della memoria
  • Letture di pagine dati
Migliorare le prestazioni delle query in SQL Server

Info dai piani di esecuzione

I piani di esecuzione mostrano:

  • Se sono stati usati indici
  • Tipi di join usati
  • Posizione e costi relativi di:
    • filtri
    • ordinamenti
    • aggregazioni
Migliorare le prestazioni delle query in SQL Server

Piano di esecuzione stimato in SSMS

 

Voce della barra strumenti di SSMS per il piano di esecuzione stimato

Migliorare le prestazioni delle query in SQL Server

Piano di esecuzione stimato in SSMS

 

Voce della barra strumenti di SSMS per il piano di esecuzione stimato con tooltip

Migliorare le prestazioni delle query in SQL Server

Visualizzare i piani in SSMS

Piano di esecuzione in SSMS

Migliorare le prestazioni delle query in SQL Server

Statistiche dell'operatore

Statistiche dell'operatore del piano di esecuzione

Migliorare le prestazioni delle query in SQL Server

Leggere i piani di esecuzione

Operatori del piano di esecuzione

Migliorare le prestazioni delle query in SQL Server

Esempio con indice

SELECT * 
FROM Customers
WHERE CustomerID = 'PARIS';

Operatore di table scan

SELECT * 
FROM CustomersCI
WHERE CustomerID = 'PARIS';

Operatore di ricerca su indice cluster (clustered index seek)

Migliorare le prestazioni delle query in SQL Server

Esempio dell'operatore di ordinamento

SELECT FruitName, FruitType
FROM Fruits1

UNION

SELECT FruitName, FruitType
FROM Fruits2;

Piano di esecuzione con UNION

SELECT FruitName, FruitType
FROM Fruits1

UNION ALL

SELECT FruitName, FruitType
FROM Fruits2;

Piano di esecuzione con UNION ALL

Migliorare le prestazioni delle query in SQL Server

Stesso piano di esecuzione?

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

Piano di esecuzione per IN ed EXISTS

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

Piano di esecuzione per IN ed EXISTS

Migliorare le prestazioni delle query in SQL Server

Passiamo alla pratica !

Migliorare le prestazioni delle query in SQL Server

Preparing Video For Download...