Класс событий SP:Recompile

События класса SP:Recompile указывают на то, что хранимая процедура, триггер или пользовательская функция были перекомпилированы. В SQL Server 2005 и более поздних версиях повторная компиляция, о которой сообщают события этого класса, производится на уровне инструкций, тогда как в SQL Server 2000 она происходит на уровне пакетов.

В SQL Server 2005 и более поздних версиях отслеживать повторные компиляции на уровне инструкций предпочтительнее при помощи класса событий SQL:StmtRecompile. Начиная с SQL Server 2005, класс событий SP:Recompile считается устаревшим. Дополнительные сведения см. в разделе Класс событий SQL:StmtRecompile и статье «Перекомпиляция планов выполнения» раздела Кэширование и повторное использование плана выполнения.

Столбцы данных класса событий SP:Recompile

Имя столбца данных

Data type

Описание

Идентификатор столбца

Фильтрация

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

Да

GroupID

int

Идентификатор группы рабочей нагрузки, в которой запускается событие SQL Trace.

66

Да

HostName

nvarchar

Имя компьютера, на котором работает клиентская программа. Этот столбец данных заполняется, если клиент предоставляет имя узла. Чтобы определить имя узла, используйте функцию HOST_NAME.

8

Да

IntegerData2

int

Конечное смещение инструкции внутри хранимой процедуры или пакета, вызвавшего повторную компиляцию. Конечное смещение равно -1 в том случае, если инструкция является последней инструкцией в пакете.

55

Да

IsSystem

int

Указывает, произошло ли событие в системном или в пользовательском процессе: 1 = системный, 0 = пользовательский.

60

Да

LoginName

nvarchar

Имя входа пользователя (либо защищенное имя входа SQL Server, либо учетные данные входа Microsoft Windows в формате домен\имя_пользователя).

11

Да

LoginSid

image

Идентификатор безопасности для пользователя, вошедшего в систему. Эти сведения можно найти в представлении каталога sys.server_principals. Значение идентификатора безопасности уникально для каждого имени входа на сервере.

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 по имени Login1 и при выполнении инструкции под именем Login2, SessionLoginName будет содержать значение Login1, а LoginName — значение Login2. В данном столбце отображаются имена входа 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

Да