Omówienie planu wykonania
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Aby móc wykonywać zapytania, aparat bazy danych programu SQL Server musi przeanalizować instrukcję, aby określić wydajny sposób uzyskiwania dostępu do wymaganych danych i ich przetwarzania. Ta analiza jest obsługiwana przez składnik o nazwie Optymalizator zapytań. Dane wejściowe optymalizatora zapytań składają się z zapytania, schematu bazy danych (definicji tabeli i indeksu) oraz statystyk bazy danych. Optymalizator zapytań tworzy co najmniej jeden plan wykonywania zapytań , czasami nazywany planami zapytań lub planami wykonywania . Optymalizator zapytań wybiera plan zapytania przy użyciu zestawu heurystyki, aby zrównoważyć czas kompilacji i zaplanować optymalność w celu znalezienia dobrego planu zapytań.
Napiwek
Aby uzyskać więcej informacji na temat przetwarzania zapytań i planów wykonywania zapytań, zobacz sekcje Optymalizowanie instrukcji SELECT i buforowanie planu wykonywania i ponowne używanie przewodnika architektury przetwarzania zapytań.
Aby uzyskać informacje na temat wyświetlania planów wykonywania w programie SQL Server Management Studio i programie Azure Data Studio, zobacz Wyświetlanie i zapisywanie planów wykonywania.
Plan wykonywania zapytania to definicja:
Sekwencja, w której uzyskuje się dostęp do tabel źródłowych.
Zazwyczaj istnieje wiele sekwencji, w których serwer bazy danych może uzyskać dostęp do tabel bazowych w celu skompilowania zestawu wyników. Jeśli na przykład instrukcja
SELECT
odwołuje się do trzech tabel, serwer bazy danych może najpierw uzyskać dostęp doTableA
, użyj danych zTableA
, aby wyodrębnić pasujące wiersze zTableB
, a następnie użyć danych zTableB
, aby wyodrębnić dane zTableC
. Inne sekwencje, w których serwer bazy danych może uzyskać dostęp do tabel, to:
TableC
,TableB
,TableA
lub
TableB
,TableA
,TableC
, lub
TableB
,TableC
,TableA
lub
TableC
,TableA
,TableB
Metody używane do wyodrębniania danych z każdej tabeli.
Ogólnie rzecz biorąc, istnieją różne metody uzyskiwania dostępu do danych w każdej tabeli. Jeśli wymagane jest tylko kilka wierszy z określonymi wartościami klucza, serwer bazy danych może użyć indeksu. Jeśli wszystkie wiersze w tabeli są wymagane, serwer bazy danych może zignorować indeksy i wykonać skanowanie tabeli. Jeśli wszystkie wiersze w tabeli są wymagane, ale istnieje indeks, którego kolumny kluczy znajdują się w
ORDER BY
, wykonanie skanowania indeksu zamiast skanowania tabeli może zapisać oddzielny zestaw wyników. Jeśli tabela jest mała, skanowanie tabel może być najbardziej wydajną metodą niemal całego dostępu do tabeli.Metody używane do obliczania obliczeń oraz sposób filtrowania, agregowania i sortowania danych z każdej tabeli.
W miarę uzyskiwania dostępu do danych z tabel istnieją różne metody wykonywania obliczeń na danych, takich jak wartości skalarne obliczeniowe, oraz agregowanie i sortowanie danych zgodnie z definicją w tekście zapytania, na przykład w przypadku używania klauzuli
GROUP BY
lubORDER BY
oraz sposobu filtrowania danych, na przykład w przypadku używania klauzuliWHERE
lubHAVING
.
Powiązana zawartość
- Monitorowanie i dostrajanie pod kątem wydajności
- narzędzia do monitorowania wydajności i dostrajania
- przewodnik po architekturze przetwarzania zapytań
- statystyki zapytań na żywo
- Monitor aktywności
- Monitorowanie wydajności przy użyciu magazynu zapytań
- sys.dm_exec_query_statistics_xml
- sys.dm_exec_query_profiles
- DBCC TRACEON — flagi śledzenia (Transact-SQL)
- Odwołanie do operatora logicznego i fizycznego planu wykonania
- Infrastruktura profilowania zapytań
- Wyświetlanie i zapisywanie planów wykonywania
- Porównanie i Analiza Planów Wykonywania
- Przewodniki planu