Класс событий SP:Recompile
События класса SP:Recompile указывают на то, что хранимая процедура, триггер или пользовательская функция были перекомпилированы. В SQL Server 2005 перекомпиляция, о которой сообщают события этого класса, производится на уровне инструкций, тогда как в SQL Server 2000 она происходит на уровне пакетов.
В SQL Server 2005 отслеживать перекомпиляции на уровне инструкций предпочтительнее с помощью класса событий SQL:StmtRecompile. Начиная с SQL Server 2005, класс событий SP:Recompile считается устаревшим. Дополнительные сведения см. в разделе Класс событий SQL:StmtRecompile и статье «Перекомпиляция планов выполнения» раздела Кэширование и повторное использование плана выполнения.
Столбцы данных класса событий SP:Recompile
Имя столбца данных | Тип данных | Описание | Идентификатор столбца | Фильтруемость |
---|---|---|---|---|
ApplicationName |
nvarchar |
Имя клиентского приложения, создавшего соединение с экземпляром Microsoft SQL Server. Этот столбец заполняется значениями, передаваемыми приложением, а не отображаемым именем программы. |
10 |
Да |
ClientProcessID |
int |
Идентификатор, присвоенный сервером процессу, в котором работает клиентское приложение. Заполнение этого столбца данных производится в том случае, если клиент предоставляет идентификатор процесса. |
9 |
Да |
DatabaseID |
int |
Идентификатор базы данных, в которой выполняется хранимая процедура. Значение для базы данных определяется с помощью функции DB_ID. |
3 |
Да |
DatabaseName |
nvarchar |
Имя базы данных, в которой выполняется хранимая процедура. |
35 |
Да |
EventClass |
int |
Тип события = 37. |
27 |
Нет |
EventSequence |
int |
Порядковый номер данного события в запросе. |
51 |
Нет |
EventSubClass |
int |
Тип подкласса события. Указывает причину перекомпиляции. 1 = изменение схемы 2 = изменение статистики 3 = перекомпиляция с разрешением имен 4 = изменение установленного параметра 5 = изменение временной таблицы 6 = изменение удаленного набора строк 7 = изменение разрешений на обзор 8 = изменение среды уведомлений о запросах 9 = изменение представления MPI 10 = изменение параметров курсора 11 = по значению параметра перекомпиляции |
21 |
Да |
HostName |
nvarchar |
Имя компьютера, на котором выполняется клиентская программа. Этот столбец данных заполняется в том случае, если клиент предоставляет имя узла. Чтобы определить имя узла, используйте функцию HOST_NAME. |
8 |
Да |
IntegerData2 |
int |
Конечное смещение инструкции внутри хранимой процедуры или пакета, вызвавшего повторную компиляцию. Конечное смещение равно -1 в том случае, если инструкция является последней инструкцией в пакете. |
55 |
Да |
IsSystem |
int |
Указывает, произошло ли событие в системном или в пользовательском процессе. 1 = системный, 0 = пользовательский. |
60 |
Да |
LoginName |
nvarchar |
Имя входа пользователя (либо защищенное имя входа SQL Server, либо учетные данные входа Microsoft Windows в формате домен\имя_пользователя). |
11 |
Да |
LoginSid |
image |
Идентификатор безопасности (SID) вошедшего в систему пользователя. Сведения об этом можно найти в таблице syslogins базы данных master. Идентификатор безопасности уникален для каждого имени входа на сервере. |
41 |
Да |
NestLevel |
int |
Уровень вложенности хранимой процедуры. |
29 |
Да |
NTDomainName |
nvarchar |
Домен Windows, к которому принадлежит пользователь. |
7 |
Да |
NTUserName |
nvarchar |
Имя пользователя Windows. |
6 |
Да |
ObjectID |
int |
Назначенный системой идентификатор хранимой процедуры. |
22 |
Да |
ObjectName |
nvarchar |
Имя объекта, запустившего повторную компиляцию. |
34 |
Да |
ObjectType |
int |
Значение, представляющее тип объекта, связанного с событием. Дополнительные сведения см. в разделе Столбец события трассировки ObjectType. |
28 |
Да |
Offset |
int |
Начальное смещение инструкции внутри хранимой процедуры или пакета, вызвавшего повторную компиляцию. |
61 |
Да |
RequestID |
int |
Идентификатор запроса, содержащего инструкцию. |
49 |
Да |
ServerName |
nvarchar |
Имя экземпляра SQL Server, для которого производится трассировка. |
26 |
Нет |
SessionLoginName |
nvarchar |
Имя входа пользователя, создавшего этот сеанс. Например, при подключении к SQL Server по имени Имя_входа1 и при выполнении инструкции под именем Имя_входа2 SessionLoginName содержит значение «Имя_входа1», а LoginName содержит значение «Имя_входа2». В этом столбце отображаются имена входа как на SQL Server, так и в Windows. |
64 |
Да |
SPID |
int |
Идентификатор сеанса, в котором произошло событие. |
12 |
Да |
SqlHandle |
varbinary |
64-разрядный хэш, основанный на тексте нерегламентированного запроса или базы данных, а также на идентификаторе объекта SQL. Это значение может быть передано в функцию sys.dm_exec_sql_text() для получения связанного с ним SQL-текста. |
63 |
Да |
StartTime |
datetime |
Время начала события, если оно известно. |
14 |
Да |
TextData |
ntext |
Текст инструкции на языке Transact-SQL, приведший к перекомпиляции на уровне инструкции. Обратите внимание, что этот столбец не заполняется данными в SQL Server 2000, но и заполняется в SQL Server 2005. |
1 |
Да |
TransactionID |
bigint |
Назначенный системой идентификатор транзакции. |
4 |
Да |
XactSequence |
bigint |
Маркер, используемый для описания текущей транзакции. |
50 |
Да |
См. также
Справочник
Класс событий SQL:StmtRecompile
Другие ресурсы
Мониторинг событий
sp_trace_setevent (Transact-SQL)