SQL Server, объект User Settable

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

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

ПримечаниеПримечание

Хранимые процедуры пользовательских счетчиков системным монитором автоматически не опрашиваются. Чтобы значения счетчика обновлялись, эти процедуры должны явным образом вызываться пользовательским приложением. Для автоматического обновления значений счетчиков используйте триггеры. Например, для создания счетчика, который отслеживает число строк в таблице, создайте для этой таблицы триггер INSERT и DELETE, выполняющий следующую инструкцию: SELECT COUNT(*) FROM table. Каждый раз во время срабатывания триггера в результате выполнения в таблице операций INSERT или DELETE происходит автоматическое обновление счетчика в системном мониторе.

В этой таблице приводится описание объекта User Settable в SQL Server.

Счетчики User Settable в SQL Server

Описание

Query

Объект User Settable содержит счетчик запроса. Пользователи настраивают счетчики User counter в рамках объекта запроса.

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

Экземпляры счетчика Query

Описание

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 sp_user_counter1 10

Хранимые процедуры пользовательских счетчиков можно вызывать из любого места, где могут быть вызваны любые другие (например, пользовательские) хранимые процедуры. Например, можно создать следующую хранимую процедуру для подсчета числа и попыток соединений с момента запуска экземпляра сервера SQL Server:

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

Функция @@CONNECTIONS возвращает число соединений или попыток соединений, осуществленных с момента запуска экземпляра сервера SQL Server. Это значение передается в качестве параметра хранимой процедуре sp_user_counter1.

Важное примечаниеВажно!

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

Разрешения

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