Condividi tramite


SQL Server, oggetto User Settable

Si applica a: SQL Server

L'oggetto User Settable in Microsoft SQL Server consente di creare istanze di contatori personalizzate. Usare istanze dei contatori personalizzate per monitorare gli aspetti del server non monitorati da contatori esistenti, ad esempio componenti univoci per il database di SQL Server, ad esempio il numero di ordini dei clienti registrati o l'inventario dei prodotti.

L'oggetto Definibile dall'utente contiene 10 istanze del contatore di query, da User counter 1 a User counter 10. Questi contatori eseguono il mapping alle stored procedure sp_user_counter1 di SQL Server tramite sp_user_counter10. Quando le stored procedure vengono eseguite dalle applicazioni utente, i valori impostati dalle stored procedure vengono visualizzati in Monitoraggio di sistema. Un contatore può monitorare qualsiasi singolo valore intero , ad esempio una stored procedure che conta il numero di ordini per un determinato prodotto in un giorno.

Nota

Il polling delle stored procedure dei contatori utente non viene eseguito automaticamente da Monitoraggio di sistema. Per aggiornare i valori dei contatori, è necessario che le stored procedure vengano eseguite in modo esplicito da un'applicazione utente. Utilizzare un trigger per aggiornare automaticamente il valore del contatore.

Questa tabella descrive l'oggetto Settable utente di SQL Server.

Contatori di SQLServer:Definibile dall'utente Descrizione
Query L'oggetto Definibile dall'utente contiene il contatore di query. Gli utenti configurano ogni contatore User all'interno dell'oggetto query. Ogni contatore è un tipo di dati integer .

Questa tabella illustra le istanze del contatore Query .

Istanze del contatore Query Descrizione
User counter 1 Definito tramite sp_user_counter1.
User counter 2 Definito tramite sp_user_counter2.
User counter 3 Definito tramite sp_user_counter3.
...
User counter 10 Definito tramite sp_user_counter10.

Impostare il valore del contatore utente

Per utilizzare le stored procedure dei contatori utente, eseguirle dall'applicazione utente con un solo parametro integer che rappresenta il nuovo valore del contatore. Ad esempio, per impostare User counter 1 sul valore 10, eseguire l'istruzione Transact-SQL seguente:

EXECUTE dbo.sp_user_counter1 10;

Le stored procedure dei contatori utente possono essere chiamate da qualsiasi posizione da cui possono essere chiamate le altre stored procedure, ad esempio le stored procedure personalizzate. Ad esempio, è possibile creare la stored procedure seguente per contare il numero di connessioni e i tentativi di connessioni dall'avvio di un'istanza di SQL Server:

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

La funzione @@CONNECTIONS restituisce il numero di connessioni o tentativi di connessione dall'avvio di un'istanza di SQL Server. Questo valore viene passato alla sp_user_counter1 stored procedure come parametro.

Importante

Le query definite nelle stored procedure dei contatori utente dovrebbero essere il più semplici possibile. Le query che impegnano molta memoria e che eseguono operazioni di ordinamento e di hashing di ampia portata o le query che eseguono grandi quantità di operazioni di I/O richiedono l'utilizzo di numerose risorse e possono determinare un peggioramento delle prestazioni del sistema.

Esempio di monitoraggio

Si inizia a esplorare i contatori in questo oggetto usando questa query T-SQL nella vista a gestione dinamica sys.dm_os_performance_counters :

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

Autorizzazioni

La stored procedure sp_user_counter è disponibile per tutti gli utenti, ma può essere limitata per qualsiasi contatore di query.