Compartilhar via


SQL Server, objeto User Settable

Aplica-se: SQL Server

O objeto User Settable no Microsoft SQL Server permite criar instâncias de contador personalizadas. Use instâncias de contador personalizadas para monitorar aspectos do servidor que escapam aos contadores existentes, como componentes exclusivos de seu banco de dados do SQL Server (por exemplo, o número de pedidos de clientes registrados em log ou o estoque de produtos).

O objeto User Settable contém 10 instâncias do contador de consultas: de Contador do usuário 1 a Contador do usuário 10. Esses contadores são mapeados para os procedimentos armazenados do SQL Server de sp_user_counter1 a sp_user_counter10. À medida que esses procedimentos armazenados são executados por aplicativos do usuário, os valores definidos por eles são exibidos no Monitor do Sistema. Um contador pode monitorar qualquer valor inteiro individual (por exemplo, um procedimento armazenado que conta quantos pedidos de um produto em particular ocorreram em um dia).

Observação

Os procedimentos armazenados de contadores do usuário não são sondados automaticamente pelo Monitor do Sistema. Eles devem ser executados explicitamente por um aplicativo de usuário para obter os valores de contador a serem atualizados. Use um gatilho para atualizar o valor do contador automaticamente.

Essa tabela descreve o objeto User Settable do SQL Server.

Contadores do SQL Server definíveis pelo usuário Descrição
Consulta O objeto User Settable contém o contador da consulta. Os usuários configuram cada Contador do usuário dentro do objeto de consulta. Cada contador é um tipo de dados integer.

Essa tabela descreve as instâncias do contador de Consultas.

Instâncias do contador de consultas Descrição
Contador do usuário 1 Definido usando sp_user_counter1.
Contador do usuário 2 Definido usando sp_user_counter2.
Contador do usuário 3 Definido usando sp_user_counter3.
...
Contador do usuário 10 Definido usando sp_user_counter10.

Definir valor do contador de usuário

Para usar os procedimentos armazenados de contador do usuário, execute-os a partir de seu próprio aplicativo com um único parâmetro de inteiro representando o novo valor do contador. Por exemplo, para definir o Contador do usuário 1 com o valor 10, execute essa instrução Transact-SQL:

EXECUTE dbo.sp_user_counter1 10;

Os procedimentos armazenados de contador do usuário podem ser chamados a partir de qualquer lugar onde normalmente podem ser chamados os outros procedimentos armazenados, como os seus próprios procedimentos armazenados. Por exemplo, é possível criar o seguinte procedimento armazenado para contar o número de conexões e tentativas de conexão desde que foi iniciada a instância do SQL Server:

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

A função @@CONNECTIONS retorna o número de conexões ou tentativas de conexão desde que tenha sido iniciada uma instância do SQL Server. Esse valor é passado ao procedimento armazenado sp_user_counter1 como o parâmetro.

Importante

Torne as consultas definidas nos procedimentos armazenados de contador do usuário o mais simples possível. Consultas que consomem muita memória e realizam operações substanciais de classificação ou hash ou grandes quantidades de E/S são de execução dispendiosa e podem influir no desempenho.

Exemplo de monitor

Você começa a explorar os contadores neste objeto usando essa consulta T-SQL na exibição de gerenciamento dinâmico sys.dm_os_performance_counters:

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

Permissões

O procedimento armazenado sp_user_counter está disponível para todos os usuários, mas pode ser restringido para qualquer contador de consultas.