SQL Server, User Setable object

Van toepassing op:SQL Server

Het User Setable-object in Microsoft SQL Server stelt je in staat om aangepaste counter-instanties te maken. Gebruik aangepaste tellerinstanties om aspecten van de server te monitoren die niet door bestaande tellers worden gecontroleerd, zoals componenten die uniek zijn voor je SQL Server-database (bijvoorbeeld het aantal geregistreerde klantbestellingen of de productvoorraad).

Het User Setable-object bevat 10 instanties van de query-teller: Gebruikersteller 1 tot en met Gebruikerteller 10. Deze tellers worden gekoppeld aan de SQL Server stored procedures sp_user_counter1 via sp_user_counter10. Terwijl deze opgeslagen procedures door gebruikersapplicaties worden uitgevoerd, worden de waarden die door de opgeslagen procedures worden ingesteld weergegeven in Systeemmonitor. Een teller kan elke enkele gehele waarde monitoren (bijvoorbeeld een opgeslagen procedure die telt hoeveel bestellingen voor een bepaald product op één dag zijn uitgevoerd).

Note

De opgeslagen procedures voor gebruikersteller worden niet automatisch gepolled door System Monitor. Ze moeten expliciet worden uitgevoerd door een gebruikersapplicatie om de tellerwaarden te kunnen bijwerken. Gebruik een trigger om de waarde van de teller automatisch bij te werken.

Deze tabel beschrijft het SQL Server User Setable-object.

SQL Server User Setable counters Beschrijving
Query Het User Setable-object bevat de queryteller. Gebruikers configureren elke User-teller binnen het query-object. Elke teller is een geheel datatype.

Deze tabel beschrijft de instanties van de Query-teller .

Query-teller instanties Beschrijving
Gebruikersteller 1 Gedefinieerd met .sp_user_counter1
Gebruikersteller 2 Gedefinieerd met .sp_user_counter2
Gebruikersteller 3 Gedefinieerd met .sp_user_counter3
...
Gebruikersteller 10 Gedefinieerd met .sp_user_counter10

Stel de waarde van de gebruikersteller in

Om gebruik te maken van de door de gebruiker opgeslagen procedures, voer je deze uit vanuit je eigen applicatie met een enkele integerparameter die de nieuwe waarde voor de teller vertegenwoordigt. Om bijvoorbeeld User-teller 1 op de waarde 10 te zetten, voer je deze Transact-SQL-instructie uit:

EXECUTE dbo.sp_user_counter1 10;

De opgeslagen procedures voor de gebruikersteller kunnen worden aangeroepen vanaf elke andere opgeslagen procedures, zoals uw eigen opgeslagen procedures. Je kunt bijvoorbeeld de volgende opgeslagen procedure maken om het aantal verbindingen en pogingen tot verbindingen te tellen sinds een instantie van SQL Server is gestart:

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

De @@CONNECTIONS functie geeft het aantal verbindingen of pogingen terug sinds een instantie van SQL Server is begonnen. Deze waarde wordt als parameter aan de sp_user_counter1 opgeslagen procedure doorgegeven.

Important

Maak de queries die in de gebruikersteller opgeslagen procedures zijn gedefinieerd zo eenvoudig mogelijk. Geheugenintensieve queries die aanzienlijke sorteer- of hashbewerkingen uitvoeren of queries die grote hoeveelheden I/O uitvoeren, zijn duur in uitvoering en kunnen de prestaties beïnvloeden.

Voorbeeld van monitor

Je begint de tellers in dit object te verkennen met deze T-SQL-query in de sys.dm_os_performance_counters dynamische beheerweergave:

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

Permissions

De opgeslagen procedure sp_user_counter is beschikbaar voor alle gebruikers, maar kan beperkt worden voor elke queryteller.