Klassifizierungsfunktion der Ressourcenkontrolle

Gilt für: SQL Server Azure SQL Managed Instance

Beim Klassifizierungsprozess von SQL Server Resource Governor werden eingehende Sitzungen auf Grundlage der Eigenschaften der Sitzung einer Arbeitsauslastungsgruppe zugewiesen. Sie können die Klassifizierungslogik anpassen, indem Sie eine benutzerdefinierte Funktion schreiben, die als Klassifizierungsfunktion bezeichnet wird.

Klassifizierung

Die Ressourcenkontrolle unterstützt die Klassifikation eingehender Sitzungen. Die Klassifikation basiert auf einer Reihe von benutzerspezifischen Kriterien, die in einer Funktion enthalten sind. Anhand der Ergebnisse der Funktionslogik kann die Ressourcenkontrolle Sitzungen in vorhandene Arbeitsauslastungsgruppen klassifizieren.

Hinweis

Die interne Arbeitsauslastungsgruppe wird mit Anforderungen gefüllt, die nur für die interne Verwendung bestimmt sind. Die zum Weiterleiten dieser Anforderungen verwendeten Kriterien können nicht geändert werden, und es können keine Anforderungen der internen Arbeitsauslastungsgruppe zugeordnet werden.

Sie können eine Skalarfunktion schreiben, die die Logik enthält, auf deren Grundlage eingehende Sitzungen einer Arbeitsauslastungsgruppe zugewiesen werden. Bevor Sie diese Funktion verwenden können, müssen Sie folgende Aktionen ausführen:

  • Erstellen und registrieren Sie die Funktion mit der ALTER RESOURCE GOVERNOR-Anweisung. Weitere Informationen finden Sie unter ALTER RESOURCE GOVERNOR (Transact-SQL).

  • Aktualisieren Sie die Konfiguration der Ressourcenkontrolle mit der ALTER RESOURCE GOVERNOR-Anweisung und dem 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.

Wichtig

Die Clientsitzung kann in einen Timeout laufen, falls die Klassifizierungsfunktion nicht innerhalb des festgelegten Timeouts für die Anmeldung abgeschlossen wird. Das Anmeldetimeout ist eine Clienteigenschaft. Der Server weiß daher nichts über ein Timeout. Eine zeitintensive Klassifiziererfunktion kann dazu führen, dass der Server über lange Zeit verwaiste Verbindungen hat. Daher ist es wichtig, Klassifizierungsfunktionen zu erstellen, deren Ausführung vor einem Verbindungstimeout beendet ist.

Die benutzerdefinierte Funktion weist die folgenden Merkmale und Verhaltensweisen auf:

  • Die benutzerdefinierte Funktion wird für jede neue Sitzung ausgewertet, auch dann, wenn Verbindungspooling aktiviert ist.

  • Die benutzerdefinierte Funktion stellt einen Arbeitsauslastungsgruppenkontext für die Sitzung bereit. Nachdem die Gruppenmitgliedschaft bestimmt ist, wird die Sitzung für ihre Lebensdauer an die Arbeitsauslastungsgruppe gebunden.

  • 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. Die Sitzung wird dem Standardkontext auch zugeordnet, falls die Funktion fehlschlägt.

  • Die Funktion sollte für den Serverbereich (Masterdatenbank) definiert werden.

  • Die Bestimmung der Funktion als benutzerdefinierte Klassifizierungsfunktion wird erst nach Ausführung von ALTER RESOURCE GOVERNOR RECONFIGURE wirksam.

  • Es kann immer nur eine benutzerdefinierte Funktion als Klassifizierungsfunktion bestimmt werden.

  • Die benutzerdefinierte Klassifizierungsfunktion kann nicht gelöscht oder geändert werden. Ihr kann lediglich der Klassifizierungsstatus entzogen werden.

  • Falls keine benutzerdefinierte Klassifizierungsfunktion ausgewiesen wurde, werden alle Sitzungen der Standardgruppe zugeordnet.

  • Die von der Klassifizierungsfunktion zurückgegebene Arbeitsauslastungsgruppe liegt außerhalb des Bereichs der Schemabindungseinschränkung. So können Sie z. B. keine Tabelle löschen, aber Sie können eine Arbeitsauslastungsgruppe löschen.

Wichtig

Es wird empfohlen, die dedizierte Administratorverbindung (Dedicated Administrator Connection, DAC) auf dem Server zu aktivieren. Die DAC unterliegt nicht der Klassifizierung der Ressourcenkontrolle und kann daher zum Überwachen einer Klassifizierungsfunktion und für die entsprechende Problembehandlung verwendet werden. Weitere Informationen finden Sie unter Diagnoseverbindung für Datenbankadministratoren. Wenn keine DAC für die Problembehandlung verfügbar ist, können Sie alternativ das System im Einzelbenutzermodus neu starten. 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.

Klassifizierungsprozess

Im Kontext der Ressourcenkontrolle besteht der Anmeldevorgang für eine Sitzung aus den folgenden Schritten:

  1. Anmeldeauthentifizierung

  2. Ausführung von LOGON-Triggern (tritt nur auf, wenn LOGON-Trigger in der Instanz enthalten sind)

  3. Klassifizierung

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.

Hinweis

Informationen zum Ausführen der Klassifizierungsfunktion und der LOGON-Trigger werden in sys.dm_exec_sessions und sys.dm_exec_requestsverfügbar gemacht.

Tasks der Klassifizierungsfunktion

Taskbeschreibung Thema
Beschreibt, wie benutzerdefinierte Klassifizierungsfunktionen erstellt und getestet werden. Erstellen und Testen einer benutzerdefinierten Klassifizierungsfunktion

Weitere Informationen

Ressourcenkontrolle
Aktivieren der Ressourcenkontrolle
Ressourcenpool für die Ressourcenkontrolle
Arbeitsauslastungsgruppe der Ressourcenkontrolle
Konfigurieren der Ressourcenkontrolle mit einer Vorlage
Anzeigen der Eigenschaften der Ressourcenkontrolle