Freigeben über


Klassifiziererfunktion für Ressourcen-Manager

Der Klassifizierungsprozess der SQL Server-Ressourcenkontrolle weist eingehende Sitzungen einer Workloadgruppe basierend auf den Merkmalen der Sitzung zu. Sie können die Klassifizierungslogik anpassen, indem Sie eine benutzerdefinierte Funktion schreiben, die als Klassifiziererfunktion bezeichnet wird.

Klassifizierung

Resource Governor unterstützt die Klassifizierung von eingehenden Sitzungen. Die Klassifizierung basiert auf einer Reihe von benutzerdefinierten Kriterien, die in einer Funktion enthalten sind. Die Ergebnisse der Funktionslogik ermöglichen die Ressourcensteuerung, Sitzungen in vorhandene Workloadgruppen zu klassifizieren.

Hinweis

Die interne Workloadgruppe wird mit Anforderungen aufgefüllt, die nur für die interne Verwendung vorgesehen sind. Sie können die Kriterien zum Weiterleiten dieser Anforderungen nicht ändern, und Sie können Anforderungen nicht in die interne Workloadgruppe klassifizieren.

Sie können eine skalare Funktion schreiben, die die Logik enthält, die zum Zuweisen eingehender Sitzungen zu einer Workloadgruppe verwendet wird. Bevor Sie diese Funktion verwenden können, müssen Sie die folgenden Aktionen ausführen:

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

  • Aktualisieren Sie die Konfiguration des Resource Governor mithilfe der ALTER RESOURCE GOVERNOR-Anweisung mit dem Parameter RECONFIGURE.

Nachdem Sie die Funktion erstellt und die Konfigurationsänderungen angewendet haben, verwendet der Klassifizierer "Ressourcenkontrolle" den von der Funktion zurückgegebenen Workloadgruppennamen, um eine neue Anforderung an die entsprechende Workloadgruppe zu senden.

Von Bedeutung

Die Clientsitzung kann möglicherweise ablaufen, wenn die Klassifizierungsfunktion nicht innerhalb der angegebenen Timeout-Zeit für die Anmeldung abgeschlossen ist. Das Anmelde-Timeout ist eine Clienteigenschaft, und der Server ist daher über ein Timeout nicht informiert. Eine lang andauernde Klassifiziererfunktion kann den Server über lange Zeiträume mit verwaisten Verbindungen zurücklassen. Es ist wichtig, dass Sie Klassifiziererfunktionen erstellen, die die Ausführung vor einem Verbindungstimeout abgeschlossen haben.

Die benutzerdefinierte Funktion weist die folgenden Merkmale und Verhaltensweisen auf:

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

  • Die benutzerdefinierte Funktion gibt Workload-Gruppe-Kontext für die Sitzung. Nachdem die Gruppenmitgliedschaft bestimmt wurde, ist die Sitzung für die gesamte Dauer der Sitzung an die Arbeitslastgruppe gebunden.

  • Wenn die benutzerdefinierte Funktion NULL, Standard oder den Namen einer nicht vorhandenen Gruppe zurückgibt, erhält die Sitzung den Standardkontext der Workloadgruppe. Die Sitzung erhält auch den Standardkontext, wenn die Funktion aus irgendeinem Grund fehlschlägt.

  • Die Funktion sollte mit Serverbereich (Masterdatenbank) definiert werden.

  • Die benutzerdefinierte Funktionsbezeichnung des Klassifizierers wird erst wirksam, nachdem ALTER RESOURCE GOVERNOR RECONFIGURE ausgeführt wurde.

  • Es kann jeweils nur eine benutzerdefinierte Funktion als Klassifizierer festgelegt werden.

  • Die benutzerdefinierte Klassifiziererfunktion kann nicht gelöscht oder geändert werden, es sei denn, der Klassifizierungsstatus wird entfernt.

  • Wenn keine benutzerdefinierte Klassifiziererfunktion vorhanden ist, werden alle Sitzungen in die Standardgruppe eingeteilt.

  • Die von der Klassifiziererfunktion zurückgegebene Workloadgruppe liegt außerhalb des Bereichs der Schemabindungseinschränkung. Beispielsweise können Sie keine Tabelle löschen, aber Sie können eine Workloadgruppe entfernen.

Von Bedeutung

Es wird empfohlen, die dedizierte Administratorverbindung (DAC) auf dem Server zu aktivieren. Der DAC unterliegt nicht der Klassifizierung durch den Ressourcen-Manager und kann verwendet werden, um eine Klassifiziererfunktion zu überwachen und zu beheben. Weitere Informationen finden Sie unter Diagnoseverbindung für Datenbankadministratoren. Wenn für die Problembehandlung kein DAC verfügbar ist, besteht die andere Option darin, das System im Einzelbenutzermodus neu zu starten. Obwohl der Einzelbenutzermodus nicht der Klassifizierung unterliegt, bietet es Ihnen nicht die Möglichkeit, die Klassifizierung des Ressourcengouverneurs während der Ausführung zu diagnostizieren.

Klassifizierungsprozess

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

  1. Anmeldeauthentifizierung

  2. LOGON-Triggerausführung

  3. Klassifizierung

Wenn die Klassifizierung beginnt, führt die Ressourcenkontrolle die Klassifiziererfunktion aus und verwendet den von der Funktion zurückgegebenen Wert, um Anforderungen an die entsprechende Workloadgruppe zu senden.

Hinweis

Informationen zur Ausführung der Klassifiziererfunktion und LOGON-Trigger werden in sys.dm_exec_sessions und sys.dm_exec_requests verfügbar gemacht.

Aufgaben der Klassifizierungsfunktion

Vorgangsbeschreibung Thema
Beschreibt das Erstellen und Testen einer benutzerdefinierten Klassifiziererfunktion. Erstellen und Testen eines Klassifizierers User-Defined Funktion

Siehe auch

Ressourcenkontrolle
Aktivieren der Ressourcenkontrolle
Ressourcenpool für die Ressourcenkontrolle
Ressourcenverwaltungsauslastungsgruppe
Konfigurieren der Ressourcenkontrolle mithilfe einer Vorlage
Anzeigen der Eigenschaften der Ressourcenkontrolle