Udostępnij za pośrednictwem


Omówienie planu wykonania

Dotyczy:SQL ServerAzure SQL DatabaseAzure 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 do TableA, użyj danych z TableA, aby wyodrębnić pasujące wiersze z TableB, a następnie użyć danych z TableB, aby wyodrębnić dane z TableC. Inne sekwencje, w których serwer bazy danych może uzyskać dostęp do tabel, to:
    TableC, TableB, TableAlub
    TableB, TableA, TableC, lub
    TableB, TableC, TableAlub
    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 lub ORDER BY oraz sposobu filtrowania danych, na przykład w przypadku używania klauzuli WHERE lub HAVING.