Share via


SQL Server, Benutzerdefinierbar (Objekt)

Gilt für:SQL Server

Mit dem User Settable-Objekt in Microsoft SQL Server können Sie benutzerdefinierte Zählerinstanzen erstellen. Verwenden Sie benutzerdefinierte Zählerinstanzen, um Aspekte des Servers zu überwachen, die nicht von vorhandenen Leistungsindikatoren überwacht werden, z. B. Komponenten, die für Ihre SQL Server-Datenbank eindeutig sind (z. B. die Anzahl der protokollierten Kundenaufträge oder des Produktbestands).

Das Benutzerdefinierbar -Objekt enthält 10 Instanzen des Abfragleistungsindikators: Benutzerindikator 1 bis Benutzerindikator 10. Diese Leistungsindikatoren entsprechen den gespeicherten SQL Server-Prozeduren sp_user_counter1 über sp_user_counter10. Da diese gespeicherten Prozeduren von Benutzeranwendungen ausgeführt werden, werden die von den gespeicherten Prozeduren festgelegten Werte im Systemmonitor angezeigt. Ein Leistungsindikator kann einen einzelnen ganzzahligen Wert überwachen, wie z. B. eine gespeicherte Prozedur, die zählt, wie viele Bestellungen für ein bestimmtes Produkt an einem Tag eingegangen sind.

Hinweis

Die gespeicherten Benutzerleistungsindikator-Prozeduren werden nicht automatisch vom Systemmonitor abgerufen. Sie müssen explizit von einer Benutzeranwendung ausgeführt werden, damit die Leistungsindikatorwerte aktualisiert werden. Verwenden Sie einen Trigger für das automatische Update des Leistungsindikatorwerts.

In dieser Tabelle wird das SQL Server User Settable-Objekt beschrieben.

Benutzerdefinierbar-Leistungsindikatoren von SQL Server Beschreibung
Abfrage Das Benutzerdefinierbar -Objekt enthält den Abfrageleistungsindikator. Benutzer konfigurieren die einzelnen Benutzerindikatoren innerhalb des Abfrageobjekts. Jeder Leistungsindikator ist ein ganzzahliger Datentyp.

In dieser Tabelle werden die Instanzen des Abfrage -Leistungsindikators beschrieben.

Instanzen des Abfrageleistungsindikators Beschreibung
Benutzerindikator 1 Definiert mithilfe von sp_user_counter1.
User counter 2 Definiert mithilfe von sp_user_counter2.
User counter 3 Definiert mithilfe von sp_user_counter3.
...
Benutzerindikator 10 Definiert mithilfe von sp_user_counter10.

Festlegen des Benutzerindikatorwerts

Wenn Sie die gespeicherten Benutzerleistungsindikator-Prozeduren verwenden möchten, führen Sie sie von Ihrer eigenen Anwendung mit einem einzelnen ganzzahligen Parameter, der den neuen Wert für den Leistungsindikator darstellt, aus. Um beispielsweise den Wert 10 für User counter 1 festzulegen, führen Sie die folgende Transact-SQL-Anweisung aus:

EXECUTE dbo.sp_user_counter1 10;

Die gespeicherten Benutzerleistungsindikator-Prozeduren können von jeder beliebigen Stelle aufgerufen werden, von der andere gespeicherte Prozeduren, wie etwa Ihre eigenen gespeicherten Prozeduren, auch aufgerufen werden können. Sie können beispielsweise die folgende gespeicherte Prozedur erstellen, um die Anzahl der Verbindungen und versuchten Verbindungen zu zählen, seit eine Instanz von SQL Server gestartet wurde:

DROP PROC My_Proc;  
GO  
CREATE PROC My_Proc  
AS   
   EXECUTE dbo.sp_user_counter1 @@CONNECTIONS;  
GO  

Die @@CONNECTIONS-Funktion gibt die Anzahl der Verbindungen oder versuchten Verbindungen zurück, seit eine Instanz von SQL Server gestartet wurde. Dieser Wert wird an die gespeicherte Prozedur sp_user_counter1 als Parameter übergeben.

Wichtig

Die in den gespeicherten Benutzerleistungsindikator-Prozeduren definierten Abfragen sollten so einfach wie möglich sein. Arbeitsspeicherintensive Abfragen mit umfangreichen Sortier- oder Hashvorgängen oder Abfragen, die viele E/A-Vorgänge ausführen, sind bezüglich der Ausführung aufwendig und können die Leistung beeinträchtigen.

Monitorbeispiel

Sie beginnen damit, die Leistungsindikatoren in diesem Objekt mithilfe dieser T-SQL-Abfrage in der dynamischen Verwaltungssicht sys.dm_os_performance_counters zu untersuchen:

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%User Settable%';

Berechtigungen

Die gespeicherte Prozedur sp_user_counter ist für alle Benutzer verfügbar, kann jedoch für jeden Abfrageleistungsindikator eingeschränkt werden.