SQL Server, User Setable object

Gäller för:SQL Server

User Setable-objektet i Microsoft SQL Server låter dig skapa egna räknarinstanser. Använd anpassade räknarinstanser för att övervaka delar av servern som inte övervakas av befintliga räknare, såsom komponenter unika för din SQL Server-databas (till exempel antalet registrerade kundbeställningar eller produktlagret).

User Setable-objektet innehåller 10 instanser av frågeräknaren: Användarräknare 1 till Användarräknare 10. Dessa räknare mappas till SQL Server som lagrade procedurer sp_user_counter1 via sp_user_counter10. Eftersom dessa lagrade procedurer körs av användarapplikationer visas värdena som sätts av de lagrade procedurerna i System Monitor. En räknare kan övervaka vilket heltalsvärde som helst (till exempel en lagrad procedur som räknar hur många beställningar för en viss produkt som har skett under en dag).

Note

Användarräknarens lagrade procedurer pollas inte automatiskt av System Monitor. De måste explicit köras av en användarapplikation för att räknarvärdena ska kunna uppdateras. Använd en trigger för att automatiskt uppdatera värdet på räknaren.

Denna tabell beskriver SQL Server User Setable-objektet.

SQL Server användarställbara räknare Description
Query User Setable-objektet innehåller frågeräknaren. Användare konfigurerar varje användarräknare inom frågeobjektet. Varje räknare är en heltalsdatatyp .

Denna tabell beskriver instanserna av frågeräknaren .

Frågeräknarinstanser Description
Användarräknare 1 Definierat med .sp_user_counter1
Användarräknare 2 Definierat med .sp_user_counter2
Användarräknare 3 Definierat med .sp_user_counter3
...
Användarräknare 10 Definierat med .sp_user_counter10

Sätt användarräknarvärde

För att använda de användarräknarens lagrade procedurer, kör dem från din egen applikation med en enda heltalsparameter som representerar det nya värdet för räknaren. Till exempel, för att sätta användarräknare 1 till värdet 10, kör denna Transact-SQL-sats:

EXECUTE dbo.sp_user_counter1 10;

Användarräknarens lagrade procedurer kan anropas var som helst andra lagrade procedurer kan anropas, såsom dina egna lagrade procedurer. Till exempel kan du skapa följande lagrad procedur för att räkna antalet anslutningar och försök till anslutningar sedan en instans av SQL Server startades:

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

Funktionen @@CONNECTIONS returnerar antalet anslutningar eller försökta anslutningar sedan en instans av SQL Server startades. Detta värde skickas till den lagrade sp_user_counter1 proceduren som parameter.

Important

Gör frågorna som definieras i de användarräknarlagrade procedurerna så enkla som möjligt. Minnesintensiva frågor som utför omfattande sorterings- eller hashoperationer eller frågor som utför stora mängder I/O är dyra att utföra och kan påverka prestandan.

Exempel på monitor

Du börjar utforska räknarna i detta objekt med denna T-SQL-fråga i den sys.dm_os_performance_counters dynamiska hanteringsvyn:

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

Permissions

Den lagrade proceduren sp_user_counter är tillgänglig för alla användare men kan begränsas till vilken frågeräknare som helst.