Udostępnij za pośrednictwem


sys.fn_validate_plan_guide (Transact-SQL)

Sprawdza poprawność określonego plan wykonania kwerendy.Funkcja sys.fn_validate_plan_guide zwraca pierwszy komunikat o błędzie, który zostanie osiągnięty po plan wykonania kwerendy jest stosowana do swojej kwerendy.Pustych zestaw wierszy jest zwracana, gdy plan wykonania kwerendy jest prawidłowa.Prowadnice plan może stać się nieprawidłowe, po wprowadzeniu zmian w projekcie fizycznej bazy danych.Na przykład jeśli plan wykonania kwerendy określonego indeksu, a indeks ten później zostanie usunięte, kwerendy nie będzie już można użyć plan wykonania kwerendy.

Poprzez sprawdzenie poprawności plan wykonania kwerendy, można określić, czy w przewodniku mogą być używane przez optymalizator bez żadnych modyfikacji.Na podstawie wyniki funkcja, można podjąć decyzję o upuszczeniu plan wykonania kwerendy i retune kwerendę lub zmodyfikować projekt bazy danych, na przykład przez ponowne tworzenie indeksu, określone w plan wykonania kwerendy.

Topic link iconKonwencje składni języka Transact-SQL

sys.fn_validate_plan_guide ( plan_guide_id )

Argumenty

  • plan_guide_id
    Is the ID of the plan guide as reported in the sys.plan_guides catalog view.plan_guide_id is int with no default.

Zwracana tabela

Nazwa kolumna

Typ danych

Description

msgnum

int

Identyfikator komunikatu o błędzie.

wskaźnik ważności

tinyint

Poziom ważności wiadomości, w zakresie od 1 do 25.

Stan

smallint

Stan numer błędu wskazujący punkt kodu, w którym wystąpił błąd.

komunikat

nvarchar(2048)

Tekst komunikatu błędu.

Uprawnienia

OBIEKT o zakresie plan wykonania kwerendy prowadnice wymagają uprawnień definicja VIEW i ALTER na obiekcie, do którego istnieje odwołanie i uprawnienia, aby skompilować kwerendę lub partia dostarczane w plan wykonania kwerendy.Na przykład jeśli zadanie partia zawiera instrukcji SELECT, SELECT uprawnień do obiektów odwołania są wymagane.

Prowadnice plan wykonania kwerendy zakresie SQL lub TEMPLATE wymagają ALTER uprawnień do bazy danych oraz uprawnienia do kompilowania kwerendy lub instancji, która jest dostępna w plan wykonania kwerendy.Na przykład jeśli zadanie partia zawiera instrukcji SELECT, SELECT uprawnień do obiektów odwołania są wymagane.

Przykłady

A.Sprawdzanie poprawności wszystkich prowadnic plan w bazie danych

W poniższym przykładzie sprawdza poprawność wszystkich prowadnic planu w bieżącej bazie danych.Jeśli jest zwracany jest zestaw wyników pusty, wszystkie linie plan są prawidłowe.

USE AdventureWorks;
GO
SELECT plan_guide_id, msgnum, severity, state, message
FROM sys.plan_guides
CROSS APPLY fn_validate_plan_guide(plan_guide_id);
GO

B.Testowanie poprawności plan wykonania kwerendy wykonania kwerendy przed wdrożeniem zmian do bazy danych

W poniższym przykładzie użyto transakcja jawna, aby usunąć indeks.The sys.fn_validate_plan_guide funkcja is executed to determine whether this akcja will invalidate any plan guides in the database. Na podstawie wyniki funkcja DROP INDEX Instrukcja jest zatwierdzona albo transakcja jest cofana i indeks nie zostanie usunięte.

USE AdventureWorks;
GO
BEGIN TRANSACTION;
DROP INDEX IX_SalesOrderHeader_CustomerID ON Sales.SalesOrderHeader;
-- Check for invalid plan guides.
IF EXISTS (SELECT plan_guide_id, msgnum, severity, state, message
           FROM sys.plan_guides
           CROSS APPLY sys.fn_validate_plan_guide(plan_guide_id))
    ROLLBACK TRANSACTION;
ELSE
    COMMIT TRANSACTION;
GO