Share via


Oggetto Definibile dall'utente di SQLServer

L'oggetto Definibile dall'utente di Microsoft SQL Server consente di creare istanze di contatore personalizzate. Utilizzare istanze di contatore personalizzate per monitorare gli aspetti del server non monitorati dai contatori esistenti, quali i componenti specifici del database di SQL Server utilizzato (ad esempio, il numero di ordini 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. Tali contatori corrispondono alle stored procedure di SQL Server da sp_user_counter1 a sp_user_counter10. Quando le stored procedure vengono eseguite dalle applicazioni utente, i valori impostati dalle stored procedure vengono visualizzati in Monitor di sistema. Un contatore può monitorare qualsiasi valore integer, ad esempio una stored procedure che esegue il conteggio degli ordini di un prodotto specifico ricevuti in un giorno.

Nota

Il polling delle stored procedure dei contatori utente non viene eseguito automaticamente da Monitor 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. Ad esempio, per creare un contatore che esegue il monitoraggio del numero di righe di una tabella, creare un trigger INSERT e DELETE nella tabella per eseguire l'istruzione seguente: SELECT COUNT(*) FROM table. Ogni volta che il trigger viene attivato da un'operazione INSERT o DELETE eseguita nella tabella, il contatore di Monitor di sistema viene aggiornato automaticamente.

In questa tabella viene illustrato l'oggetto User Settable di SQL Server.

Contatori di SQLServer:Definibile dall'utente

Descrizione

Query

L'oggetto Definibile dall'utente contiene il contatore di query. Gli utenti configurano il valore delle istanze User counter all'interno dell'oggetto query.

In questa tabella vengono illustrate 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.

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 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 eseguire il conteggio del numero di connessioni e tentativi di connessione eseguiti dall'avvio di un'istanza di SQL Server:

DROP PROC My_Proc
GO
CREATE PROC My_Proc
AS 
   EXECUTE sp_user_counter1 @@CONNECTIONS
GO

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

Nota importanteImportante

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.

Autorizzazioni

sp_user_counter è disponibile per tutti gli utenti, ma è possibile limitarne l'utilizzo per qualsiasi contatore di query.