Classe di evento Plan Guide Unsuccessful
La classe di evento Plan Guide Unsuccessful indica che tramite SQL Server non è stato possibile creare un piano di esecuzione per una query o un batch contenente una guida di piano. Il piano è stato invece compilato senza utilizzare la guida di piano. L'evento viene generato quando vengono soddisfatte le condizioni seguenti:
Il modulo/batch nella definizione della guida di piano corrisponde al batch in esecuzione.
La query nella definizione della guida di piano corrisponde alla query in esecuzione.
Gli hint nella definizione della guida di piano, incluso l'hint USE PLAN, non vengono applicati correttamente alla query o batch. Quindi, il piano di query compilato non è in grado di applicare gli hint specificati e il piano viene compilato utilizzando la guida di piano.
Una guida di piano non valida può causare la generazione di questo evento. Convalidare la guida di piano utilizzata dalla query o batch utilizzando la funzione sys.fn_validate_plan_guide e correggere l'errore riportato da questa funzione.
Questo evento è incluso nel modello Tuning di SQL Server Profiler.
Colonne di dati della classe di evento Plan Guide Unsuccessful
Nome colonna di dati |
Tipo di dati |
Descrizione |
ID colonna |
Filtrabile |
---|---|---|---|---|
ApplicationName |
nvarchar |
Nome dell'applicazione client in cui è stata creata la connessione a un'istanza di SQL Server. Questa colonna viene popolata con i valori passati dall'applicazione anziché con il nome visualizzato del programma. |
10 |
Sì |
ClientProcessID |
int |
ID assegnato dal computer host al processo in cui è in esecuzione l'applicazione client. Questa colonna di dati viene popolata se tramite il client viene indicato l'ID del processo client. |
9 |
Sì |
DatabaseID |
int |
ID del database specificato nell'istruzione USE database oppure ID del database predefinito, se per un'istanza specificata non viene eseguita un'istruzione USE database. Se la colonna di dati ServerName viene catturata nella traccia e il server è disponibile SQL Server Profiler visualizza il nome del database. Determinare il valore per un database utilizzando la funzione DB_ID. |
3 |
Sì |
DatabaseName |
nvarchar |
Nome del database nel quale viene eseguita l'istruzione dell'utente. |
35 |
Sì |
EventClass |
int |
Tipo di evento = 218. |
27 |
No |
EventSequence |
int |
Sequenza di un determinato evento all'interno della richiesta. |
51 |
No |
HostName |
nvarchar |
Nome del computer in cui viene eseguito il client. Questa colonna di dati viene popolata se il client fornisce il nome host. Per determinare il nome host, utilizzare la funzione HOST_NAME. |
8 |
Sì |
IsSystem |
int |
Indica se l'evento si è verificato in un processo di sistema o in un processo utente: 1 = sistema, 0 = utente. |
60 |
Sì |
LoginName |
nvarchar |
Nome dell'account di accesso dell'utente (account di sicurezza di SQL Server o credenziali di accesso di Microsoft Windows nel formato DOMINIO\username). |
11 |
Sì |
LoginSid |
image |
ID di sicurezza (SID) dell'utente connesso. Tali informazioni sono disponibili nelle viste del catalogo sys.server_principals o sys.sql_logins. Il SID è univoco per ogni account di accesso nel server. |
41 |
Sì |
NTDomainName |
nvarchar |
Dominio Windows di appartenenza dell'utente. |
7 |
Sì |
NTUserName |
nvarchar |
Nome utente di Windows. |
6 |
Sì |
ObjectID |
int |
ID oggetto del modulo in fase di compilazione quando viene applicata la guida di piano. Se la guida di piano non viene applicata a un modulo, questa colonna è impostata su NULL. |
22 |
Sì |
RequestID |
int |
ID della richiesta contenente l'istruzione. |
49 |
Sì |
ServerName |
nvarchar |
Nome dell'istanza di SQL Server tracciata. |
26 |
No |
SessionLoginName |
nvarchar |
Nome dell'account di accesso dell'utente che ha avviato la sessione. Se, ad esempio, si esegue la connessione a SQL Server con l'account di accesso Login1 e si esegue un'istruzione come Login2, in SessionLoginName viene visualizzato Login1 e in LoginName viene visualizzato Login2. In questa colonna vengono visualizzati sia gli account di accesso di SQL Server che quelli di Windows. |
64 |
Sì |
SPID |
int |
ID della sessione in cui si è verificato l'evento. |
12 |
Sì |
StartTime |
datetime |
Ora di inizio dell'evento, se disponibile. |
14 |
Sì |
TextData |
ntext |
Nome della guida di piano. |
1 |
Sì |
TransactionID |
bigint |
ID della transazione assegnato dal sistema. |
4 |
Sì |
XactSequence |
bigint |
Token utilizzato per descrivere la transazione corrente. |
50 |
Sì |
Vedere anche
Riferimento
Classe di evento Plan Guide Successful
sp_trace_setevent (Transact-SQL)
sys.fn_validate_plan_guide (Transact-SQL)
sp_create_plan_guide (Transact-SQL)
sp_create_plan_guide_from_handle (Transact-SQL)