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.