Klassifizierungsfunktion der RessourcenkontrolleResource Governor Classifier Function

Beim Klassifizierungsprozess der SQL ServerSQL Server -Ressourcenkontrolle werden eingehende Sitzungen auf Grundlage der Eigenschaften der Sitzung einer Arbeitsauslastungsgruppe zugewiesen.The SQL ServerSQL Server resource governor classification process assigns incoming sessions to a workload group based on the characteristics of the session. Sie können die Klassifizierungslogik anpassen, indem Sie eine benutzerdefinierte Funktion schreiben, die als Klassifizierungsfunktion bezeichnet wird.You can tailor the classification logic by writing a user-defined function, called a classifier function.

KlassifizierungClassification

Die Ressourcenkontrolle unterstützt die Klassifikation eingehender Sitzungen.Resource Governor supports the classification of incoming sessions. Die Klassifikation basiert auf einer Reihe von benutzerspezifischen Kriterien, die in einer Funktion enthalten sind.Classification is based on a set of user-written criteria contained in a function. Anhand der Ergebnisse der Funktionslogik kann die Ressourcenkontrolle Sitzungen in vorhandene Arbeitsauslastungsgruppen klassifizieren.The results of the function logic enable Resource Governor to classify sessions into existing workload groups.

Hinweis

Die interne Arbeitsauslastungsgruppe wird mit Anforderungen gefüllt, die nur für die interne Verwendung bestimmt sind.The internal workload group is populated with requests that are for internal use only. Die zum Weiterleiten dieser Anforderungen verwendeten Kriterien können nicht geändert werden, und es können keine Anforderungen der internen Arbeitsauslastungsgruppe zugeordnet werden.You cannot change the criteria used for routing these requests and you cannot classify requests into the internal workload group.

Sie können eine Skalarfunktion schreiben, die die Logik enthält, auf deren Grundlage eingehende Sitzungen einer Arbeitsauslastungsgruppe zugewiesen werden.You can write a scalar function that contains the logic that is used to assign incoming sessions to a workload group. Bevor Sie diese Funktion verwenden können, müssen Sie folgende Aktionen ausführen:Before you can use this function, you must complete the following actions:

  • Erstellen und registrieren Sie die Funktion mit der ALTER RESOURCE GOVERNOR-Anweisung.Create and register the function using the ALTER RESOURCE GOVERNOR statement. Weitere Informationen finden Sie unter ALTER RESOURCE GOVERNOR (Transact-SQL).For more information, see ALTER RESOURCE GOVERNOR (Transact-SQL).

  • Aktualisieren Sie die Konfiguration der Ressourcenkontrolle mit der ALTER RESOURCE GOVERNOR-Anweisung und dem RECONFIGURE-Parameter.Update the Resource Governor configuration using the ALTER RESOURCE GOVERNOR statement with the RECONFIGURE parameter.

    Nachdem Sie die Funktion erstellt und die Konfigurationsänderungen übernommen haben, verwendet die Klassifizierungsfunktion der Ressourcenkontrolle den von der Funktion zurückgegebenen Arbeitsauslastungsgruppennamen, um eine neue Anforderung an die entsprechende Arbeitsauslastungsgruppe zu senden.After you create the function and apply the configuration changes, the Resource Governor classifier will use the workload group name returned by the function to send a new request to the appropriate workload group.

Wichtig

Die Clientsitzung kann in einen Timeout laufen, falls die Klassifizierungsfunktion nicht innerhalb des festgelegten Timeouts für die Anmeldung abgeschlossen wird.The client session may time out if the classification function does not complete within the specified time-out for the login. Da der Anmeldetimeout eine Eigenschaft des Clients ist, wird dieser Timeout vom Server nicht beachtet. Eine Klassifizierungsfunktion mit langer Laufzeit kann auf dem Server zu lang andauernden verwaisten Verbindungen führen.Login time-out is a client property and as such, the server is unaware of a time-out. A long-running classifier function can leave the server with orphaned connections for long periods. Daher ist es wichtig, Klassifizierungsfunktionen zu erstellen, deren Ausführung vor einem Verbindungstimeout beendet ist.It is important that you create classifier functions that finish executing before a connection time-out.

Die benutzerdefinierte Funktion weist die folgenden Merkmale und Verhaltensweisen auf:The user-defined function has the following characteristics and behaviors:

  • Die benutzerdefinierte Funktion wird für jede neue Sitzung ausgewertet, auch dann, wenn Verbindungspooling aktiviert ist.The user-defined function is evaluated for every new session, even when connection pooling is enabled.

  • Die benutzerdefinierte Funktion stellt einen Arbeitsauslastungsgruppenkontext für die Sitzung bereit.The user-defined function gives workload group context for the session. Nachdem die Gruppenmitgliedschaft bestimmt ist, wird die Sitzung für ihre Lebensdauer an die Arbeitsauslastungsgruppe gebunden.After group membership is determined, the session is bound to the workload group for the lifetime of the session.

  • Falls die benutzerdefinierte Funktion NULL, "default" oder den Namen einer nicht vorhandenen Gruppe zurückgibt, wird die Sitzung dem Kontext für die Standardarbeitsauslastungsgruppe zugeordnet.If the user-defined function returns NULL, default, or the name of non-existent group the session is given the default workload group context. Die Sitzung wird dem Standardkontext auch zugeordnet, falls die Funktion fehlschlägt.The session is also given the default context if the function fails for any reason.

  • Die Funktion sollte für den Serverbereich (Masterdatenbank) definiert werden.The function should be defined with server scope (master database).

  • Die Bestimmung der Funktion als benutzerdefinierte Klassifizierungsfunktion wird erst nach Ausführung von ALTER RESOURCE GOVERNOR RECONFIGURE wirksam.The classifier user-defined function designation only takes effect after ALTER RESOURCE GOVERNOR RECONFIGURE is executed.

  • Es kann immer nur eine benutzerdefinierte Funktion als Klassifizierungsfunktion bestimmt werden.Only one user-defined function can be designated as a classifier at a time.

  • Die benutzerdefinierte Klassifizierungsfunktion kann nicht gelöscht oder geändert werden. Ihr kann lediglich der Klassifizierungsstatus entzogen werden.The classifier user-defined function cannot be dropped or altered unless its classifier status is removed.

  • Falls keine benutzerdefinierte Klassifizierungsfunktion ausgewiesen wurde, werden alle Sitzungen der Standardgruppe zugeordnet.In the absence of a classifier user-defined function, all sessions are classified into the default group.

  • Die von der Klassifizierungsfunktion zurückgegebene Arbeitsauslastungsgruppe liegt außerhalb des Bereichs der Schemabindungseinschränkung.The workload group returned by the classifier function is outside the scope of the schema-binding restriction. So können Sie z. B. keine Tabelle löschen, aber Sie können eine Arbeitsauslastungsgruppe löschen.For example, you cannot drop a table, but you can drop a workload group.

Wichtig

Es wird empfohlen, die dedizierte Administratorverbindung (Dedicated Administrator Connection, DAC) auf dem Server zu aktivieren.We recommend enabling the Dedicated Administrator Connection (DAC) on the server. Die DAC unterliegt nicht der Klassifizierung der Ressourcenkontrolle und kann daher zum Überwachen einer Klassifizierungsfunktion und für die entsprechende Problembehandlung verwendet werden.The DAC is not subject to Resource Governor classification and can be used to monitor and troubleshoot a classifier function. Weitere Informationen finden Sie unter Diagnoseverbindung für Datenbankadministratoren.For more information, see Diagnostic Connection for Database Administrators. Wenn keine DAC für die Problembehandlung verfügbar ist, können Sie alternativ das System im Einzelbenutzermodus neu starten.If a DAC is not available for troubleshooting, the other option is to restart the system in single user mode. Der Einzelbenutzermodus unterliegt zwar nicht der Klassifizierung, allerdings haben Sie in diesem Modus nicht die Möglichkeit, die Klassifizierung der Ressourcenkontrolle während der Ausführung zu diagnostizieren.Although single user mode is not subject to classification, it does not give you the ability to diagnose Resource Governor classification while it is running.

KlassifizierungsprozessClassification Process

Im Kontext der Ressourcenkontrolle besteht der Anmeldevorgang für eine Sitzung aus den folgenden Schritten:In the context of Resource Governor, the login process for a session consists of the following steps:

  1. AnmeldeauthentifizierungLogin authentication

  2. Ausführung von LOGON-TriggernLOGON trigger execution

  3. KlassifizierungClassification

    Wenn die Klassifizierung gestartet wird, führt die Ressourcenkontrolle die Klassifizierungsfunktion aus und verwendet den von der Funktion zurückgegebenen Wert, um Anforderungen an die entsprechende Arbeitsauslastungsgruppe zu senden.When classification starts, Resource Governor executes the classifier function and uses the value returned by the function to send requests to the appropriate workload group.

Hinweis

Informationen zum Ausführen der Klassifizierungsfunktion und der LOGON-Trigger werden in sys.dm_exec_sessions und sys.dm_exec_requestsverfügbar gemacht.Information about the execution of the classifier function and LOGON triggers is exposed in sys.dm_exec_sessions and sys.dm_exec_requests.

Tasks der KlassifizierungsfunktionClassification Function Tasks

TaskbeschreibungTask Description ThemaTopic
Beschreibt, wie benutzerdefinierte Klassifizierungsfunktionen erstellt und getestet werden.Describes how to create and test a classifier user-defined function. Erstellen und Testen einer benutzerdefinierten KlassifizierungsfunktionCreate and Test a Classifier User-Defined Function

Siehe auchSee Also

Resource Governor Resource Governor
Aktivieren der Ressourcenkontrolle Enable Resource Governor
Ressourcenpool für die Ressourcenkontrolle Resource Governor Resource Pool
Arbeitsauslastungsgruppe der Ressourcenkontrolle Resource Governor Workload Group
Konfigurieren der Ressourcenkontrolle mit einer Vorlage Configure Resource Governor Using a Template
Anzeigen der Eigenschaften der RessourcenkontrolleView Resource Governor Properties