Plan Guide Unsuccessful (Ereignisklasse)
Gilt für: SQL Server
Die Ereignisklasse "Plan Guide Unsuccessful" gibt an, dass SQL Server keinen Ausführungsplan für eine Abfrage oder einen Batch erstellen konnte, der eine Plananleitung enthielt. Der Plan wurde stattdessen ohne die Planhinweisliste kompiliert. Dieses Ereignis wird ausgelöst, wenn die folgenden Voraussetzungen erfüllt sind:
Der Batch/das Modul in der Planhinweislisten-Definition stimmt mit dem ausgeführten Batch überein.
Die Abfrage in der Planhinweislisten-Definition stimmt mit der ausgeführten Abfrage überein.
Die Hinweise in der Planhinweisliste, einschließlich des
USE PLAN
-Hinweises, wurden nicht erfolgreich auf die Abfrage oder den Batch angewendet. Das heißt, dass der kompilierte Abfrageplan die angegebenen Hinweise ignoriert hat und der Plan ohne die Planhinweisliste kompiliert wurde.
Dieses Ereignis kann auch durch eine ungültige Planhinweisliste ausgelöst werden. Überprüfen Sie die von der Abfrage bzw. dem Batch verwendete Planhinweisliste mit der sys.fn_validate_plan_guide -Funktion, und berichtigen Sie den von der Funktion gemeldeten Fehler.
Dieses Ereignis ist in der SQL Server Profiler Tuning-Vorlage enthalten.
Hinweis
Diese Ereignisklasse ist in Azure SQL-Datenbank nicht verfügbar.
Datenspalten der Plan Guide Unsuccessful-Ereignisklasse
Datenspaltenname | Datentyp | BESCHREIBUNG | Column ID | Filterbar |
---|---|---|---|---|
ApplicationName | nvarchar | Name der Clientanwendung, die die Verbindung mit einer Instanz von SQL Server erstellt hat. Diese Spalte wird mit den Werten gefüllt, die von der Anwendung übergeben werden, und nicht mit dem angezeigten Namen des Programms. | 10 | Ja |
ClientProcessID | int | Die ID, die der Hostcomputer dem Prozess zuweist, in dem die Clientanwendung ausgeführt wird. Diese Datenspalte wird aufgefüllt, wenn der Client die Clientprozess-ID angibt. | 9 | Ja |
DatabaseID | int | Die ID der Datenbank, die durch die USE database -Anweisung angegeben wurde, bzw. die ID der Standarddatenbank, wenn für eine angegebene Instanz keine USE database -Anweisung ausgegeben wurde. SQL Server Profiler zeigt den Namen der Datenbank an, wenn die ServerName -Datenspalte in der Ablaufverfolgung aufgezeichnet wird und der Server verfügbar ist. Der Wert für eine Datenbank kann mithilfe der DB_ID-Funktion ermittelt werden. | 3 | Ja |
DatabaseName | nvarchar | Name der Datenbank, in der die Benutzeranweisung ausgeführt wird. | 35 | Ja |
EventClass | int | Ereignistyp = 218. | 27 | No |
EventSequence | int | Sequenz eines bestimmten Ereignisses innerhalb der Anforderung | 51 | No |
HostName | nvarchar | Der Name des Computers, auf dem der Client ausgeführt wird. Diese Datenspalte wird aufgefüllt, wenn der Hostname vom Client bereitgestellt wird. Verwenden Sie die HOST_NAME -Funktion, um den Hostnamen zu bestimmen. | 8 | Ja |
IsSystem | int | Gibt an, ob das Ereignis in einem Systemprozess oder einem Benutzerprozess aufgetreten ist: 1 = System, 0 = Benutzer. | 60 | Ja |
LoginName | nvarchar | Name der Anmeldung des Benutzers (entweder SQL Server-Sicherheitsanmeldung oder Microsoft Windows-Anmeldeinformationen in Form von DOMÄNE\Benutzername). | 11 | Ja |
LoginSid | Abbildung | Sicherheits-ID (SID) des angemeldeten Benutzers. Sie finden diese Informationen in der sys.server_principals -Katalogsicht bzw. in der sys.sql_logins -Katalogsicht. Die SID ist für jede Anmeldung beim Server eindeutig. | 41 | Ja |
NTDomainName | nvarchar | Windows-Domäne, zu der der Benutzer gehört. | 7 | Ja |
NTUserName | nvarchar | Windows-Benutzername. | 6 | Ja |
ObjectID | int | Objekt-ID des Moduls, das kompiliert wurde, als die Planhinweisliste angewendet wurde. Falls die Planhinweisliste auf kein Modul angewendet wurde, wird diese Spalte auf NULL festgelegt. | 22 | Ja |
RequestID | int | Die ID der Anforderung, die die Anweisung enthält. | 49 | Ja |
ServerName | nvarchar | Name der Instanz von SQL Server, die nachverfolgt wird. | 26 | No |
SessionLoginName | nvarchar | Der Anmeldename des Benutzers, der die Sitzung gestartet hat. Wenn Sie beispielsweise mithilfe von Login1 eine Verbindung mit SQL Server herstellen und eine Anweisung als Login2 ausführen, zeigt SessionLoginName "Login1" und "LoginName" "Login2" an. In dieser Spalte werden sowohl SQL Server- als auch Windows-Anmeldungen angezeigt. | 64 | Ja |
SPID | int | Die ID der Sitzung, in der das Ereignis aufgetreten ist. | 12 | Ja |
StartTime | datetime | Zeitpunkt, zu dem das Ereignis begonnen hat (falls vorhanden). | 14 | Ja |
TextData | ntext | Name der Planhinweisliste. | 1 | Ja |
TransactionID | bigint | Die vom System zugewiesene ID der Transaktion. | 4 | Ja |
XactSequence | bigint | Das Token, das die aktuelle Transaktion beschreibt. | 50 | Ja |
Weitere Informationen
Plan Guide Successful (Ereignisklasse)
Erweiterte Ereignisse
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)