Freigeben über


Plan Guide Unsuccessful (Ereignisklasse)

Die Plan Guide Unsuccessful-Ereignisklasse zeigt an, dass SQL Server für eine Abfrage oder einen Batch mit Planhinweisliste keinen Ausführungsplan erzeugen konnte. 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 Planhinweislisten-Definition, einschließlich des USE PLAN-Hinweises, konnten nicht auf die Abfrage bzw. den Batch angewendet werden. 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 Optimierungsvorlage von SQL Server Profiler enthalten.

Datenspalten der Plan Guide Unsuccessful-Ereignisklasse

Name der Datenspalte

Datentyp

Beschreibung

Spalten-ID

Filterbar

ApplicationName

nvarchar

Der Name der Clientanwendung, die die Verbindung mit einer Instanz von SQL Server hergestellt hat. Diese Spalte wird mit den Werten aufgefü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 gefüllt, wenn der Client die Clientprozess-ID angibt.

9

Ja

DatabaseID

int

ID der Datenbank, die in der USE database-Anweisung angegeben wurde, bzw. die ID der Standarddatenbank, wenn für eine bestimmte Instanz keine USE database-Anweisung ausgegeben wurde. In SQL Server Profiler wird der Name der Datenbank angezeigt, 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

Nein

EventSequence

int

Die Sequenz eines bestimmten Ereignisses innerhalb der Anforderung.

51

Nein

HostName

nvarchar

Der Name des Computers, auf dem der Client ausgeführt wird. Diese Datenspalte wird gefüllt, wenn der Client den Hostnamen angibt. Der Hostname kann mithilfe der HOST_NAME-Funktion ermittelt werden.

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

Der Anmeldename des Benutzers (SQL Server-Sicherheitsanmeldung oder Microsoft-Windows-Anmeldeinformationen im Format DOMÄNE\Benutzername).

11

Ja

LoginSid

image

Die 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 am Server eindeutig.

41

Ja

NTDomainName

nvarchar

Die Windows-Domäne, der der Benutzer angehört.

7

Ja

NTUserName

nvarchar

Der Windows-Benutzername.

6

Ja

ObjectID

int

Die 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

Der Name der Instanz von SQL Server, für die eine Ablaufverfolgung ausgeführt wird

26

Nein

SessionLoginName

nvarchar

Anmeldename des Benutzers, der die Sitzung geöffnet hat. Wenn Sie beispielsweise mithilfe von Login1 eine Verbindung mit SQL Server herstellen und eine Anweisung als Login2 ausführen, zeigt SessionLoginName den Wert Login1 an und LoginName den Wert Login2. Diese Spalte zeigt sowohl den SQL Server- als auch den Windows-Anmeldenamen an.

64

Ja

SPID

int

Die ID der Sitzung, in der das Ereignis aufgetreten ist.

12

Ja

StartTime

datetime

Der Zeitpunkt, zu dem das Ereignis gestartet wurde (sofern verfügbar).

14

Ja

TextData

ntext

Der 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