Share via


SQL Server,User Settable 物件

適用於:SQL Server

Microsoft SQL Server 中的 User Settable 物件可讓您建立自訂計數器執行個體。 使用自訂計數器執行個體來監視現有計數器未監視的伺服器層面,例如 SQL Server 資料庫獨有的元件 (例如,記錄的客戶訂單數或產品庫存數)。

User Settable 物件包含 10 個查詢計數器執行個體:User counter 1User counter 10。 這些計數器會透過 sp_user_counter10 對應至 SQL Server 預存程序 sp_user_counter1。 當使用者應用程式執行這些預存程序時,預存程序所設定的數值將顯示於「系統監視器」內。 計數器可監視任何一個整數值 (例如計算特定產品在某天內發生之訂單數的預存程序)。

注意

「系統監視器」不會自動輪詢使用者計數器預存程序。 必須由使用者應用程式明確執行,才會更新計數器的值。 請利用觸發程序來自動更新計數器的值。

下表描述 SQL Server User Settable 物件。

SQL Server User Settable 計數器 描述
查詢 User Settable 物件包含查詢計數器。 使用者可設定查詢物件內的每個 User counter。 每個計數器都是整數資料類型。

下表描述 Query 計數器的 執行個體

Query 計數器執行個體 描述
User counter 1 使用 sp_user_counter1 定義。
使用者計數器 2 使用 sp_user_counter2 定義。
使用者計數器 3 使用 sp_user_counter3 定義。
...
User counter 10 使用 sp_user_counter10 定義。

設定使用者計數器值

若要使用使用者計數器預存程序,只要從您自己的應用程式執行它們,並且以一個整數參數代表計數器的新數值。 例如若要將 User counter 1 設成數值 10,可執行下列的 Transact-SQL 陳述式:

EXECUTE dbo.sp_user_counter1 10;

可呼叫使用者計數器預存程序的位置和呼叫其他預存程序的位置一樣,像是您自己的預存程序。 例如,您可以建立下列的預存程序,計算自從 SQL Server 執行個體啟動之後的連接數和嘗試連接數:

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

@@CONNECTIONS 函數可傳回自從 SQL Server 執行個體啟動之後的連接數或嘗試連接數。 此值將傳至 sp_user_counter1 預存程序作為參數。

重要

盡量讓定義於使用者計數器預存程序的查詢越簡單越好。 執行大量排序或雜湊作業的記憶體密集查詢,或是執行大量 I/O 的查詢,都需要很多資源才能執行,所以可能影響效能。

監視範例

您可以在 sys.dm_os_performance_counters 動態管理檢視上使用這個 T-SQL 查詢,開始探索此物件中的計數器:

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

權限

預存程序 sp_user_counter 適用於所有使用者,但可能受到任何查詢計數器的限制。