Exekveringsplaner

Förbättra frågeprestanda i SQL Server

Dean Smith

Founder, Atamai Analytics

Optimeringsfas

Optimeringsfas

Förbättra frågeprestanda i SQL Server

Optimeringsfas

Optimeringsfas med beskrivning

Kostnadsparametrar som utvärderas:

  • Processoranvändning
  • Minnesanvändning
  • Läsning av datasidor
Förbättra frågeprestanda i SQL Server

Optimeringsfas

Optimeringsfas och exekveringsmotor

Kostnadsparametrar som utvärderas:

  • Processoranvändning
  • Minnesanvändning
  • Läsning av datasidor
Förbättra frågeprestanda i SQL Server

Information från exekveringsplaner

Exekveringsplaner ger information om:

  • Om index användes
  • Typer av join som användes
  • Placering och relativa kostnader för:
    • filtervillkor
    • sortering
    • aggregeringar
Förbättra frågeprestanda i SQL Server

Uppskattad exekveringsplan i SSMS

 

Uppskattad exekveringsplan i SSMS verktygsfält

Förbättra frågeprestanda i SQL Server

Uppskattad exekveringsplan i SSMS

 

Uppskattad exekveringsplan i SSMS verktygsfält med tooltip

Förbättra frågeprestanda i SQL Server

Visa exekveringsplaner i SSMS

Exekveringsplan i SSMS

Förbättra frågeprestanda i SQL Server

Operatorstatistik

Operatorstatistik för exekveringsplan

Förbättra frågeprestanda i SQL Server

Läsa exekveringsplaner

Operatorer i exekveringsplan

Förbättra frågeprestanda i SQL Server

Indexexempel

SELECT * 
FROM Customers
WHERE CustomerID = 'PARIS';

Tabellsökning-operator

SELECT * 
FROM CustomersCI
WHERE CustomerID = 'PARIS';

Klustrat indexsökning-operator

Förbättra frågeprestanda i SQL Server

Exempel på sorteringsoperator

SELECT FruitName, FruitType
FROM Fruits1

UNION

SELECT FruitName, FruitType
FROM Fruits2;

Exekveringsplan med UNION

SELECT FruitName, FruitType
FROM Fruits1

UNION ALL

SELECT FruitName, FruitType
FROM Fruits2;

Exekveringsplan med UNION ALL

Förbättra frågeprestanda i SQL Server

Samma exekveringsplan?

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

Exekveringsplan för IN och EXISTS

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

Exekveringsplan för IN och EXISTS

Förbättra frågeprestanda i SQL Server

Nu kör vi en övning!

Förbättra frågeprestanda i SQL Server

Preparing Video For Download...