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


Класс событий 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)

Справка и поддержка

Получение помощи по SQL Server 2005