Поделиться через


SQL Server, объект User Settable

Область применения: SQL Server

Объект User Settable в Microsoft SQL Server позволяет создавать пользовательские экземпляры счетчиков. Используйте пользовательские экземпляры счетчиков для мониторинга аспектов сервера, не отслеживаемых существующими счетчиками, например компонентов, уникальных для базы данных SQL Server (например, количество заказов клиентов, зарегистрированных или инвентаризация продуктов).

В объекте User Settable содержится 10 экземпляров счетчиков запросов: с User counter 1 по User counter 10. Эти счетчики сопоставляют с хранимыми процедурами sp_user_counter1 sp_user_counter10SQL Server. Поскольку эти хранимые процедуры выполняются пользовательскими приложениями, значения, получаемые в результате выполнения хранимых процедур, отображаются в системном мониторе. Счетчик может отслеживать любое целочисленное значение (например, хранимая процедура может подсчитывать, сколько заказов конкретного продукта было совершено за один день).

Примечание.

Хранимые процедуры пользовательских счетчиков системным монитором автоматически не опрашиваются. Чтобы значения счетчика обновлялись, эти процедуры должны явным образом вызываться пользовательским приложением. Для автоматического обновления значений счетчиков используйте триггеры.

В этой таблице описывается объект пользовательской таблицы SQL Server.

SQL Server, счетчики User Settable Description
Запрос Объект User Settable содержит счетчик запроса. Пользователи настраивают каждый объект User counter в рамках объекта запроса. Каждый счетчик имеет тип данных целое число.

В данной таблице приводится описание экземпляров счетчика Query .

Экземпляры счетчиков запросов Description
User counter 1 Определяется с помощью sp_user_counter1.
User counter 2 Определяется с помощью sp_user_counter2.
User counter 3 Определяется с помощью sp_user_counter3.
...
User counter 10 Определяется с помощью sp_user_counter10.

Установка значения пользовательского счетчика

Хранимые процедуры пользовательских счетчиков запускаются из приложения с одним целочисленным параметром, представляющим новое значение счетчика. Например, чтобы задать значение 10 для объекта User counter 1 , выполните следующую инструкцию 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.

Внимание

Делайте запросы, определяемые в хранимых процедурах пользовательских счетчиков, как можно более простыми. Ресурсоемкие запросы, выполняющие ресурсоемкую сортировку или хэш-операции, либо задействующие большое количество операций ввода-вывода, являются очень затратными и могут повлиять на производительность.

Пример монитора

Вы начинаете изучать счетчики в этом объекте, используя следующий запрос T-SQL в динамическом административном представлении sys.dm_os_performance_counters:

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

Разрешения

Хранимая процедура sp_user_counter доступна всем пользователям, но доступ к любому из счетчиков запросов может быть ограничен.