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


Класс событий SQL:StmtRecompile

Класс событий SQL:StmtRecompile указывает на повторные компиляции уровня инструкций, инициированные всеми типами пакетов: хранимыми процедурами, триггерами, нерегламентированными пакетами и запросами. Запросы могут передаваться с помощью sp_executesql, динамического SQL, методов Prepare, методов Execute или аналогичных интерфейсов. Начиная с SQL Server 2005, вместо класса событий SP:Recompile должен использоваться класс событий SQL:StmtRecompile.

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

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

Тип данных

Описание

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

Фильтруемый

ApplicationName

nvarchar

Имя клиентского приложения, создавшего соединение с экземпляром Microsoft SQL Server. Этот столбец заполняется значениями, передаваемыми приложением, а не отображаемым именем программы.

10

Да

ClientProcessID

int

Идентификатор, присвоенный сервером процессу, в котором работает клиентское приложение. Заполнение этого столбца данных производится в том случае, если клиент предоставляет идентификатор процесса.

9

Да

DatabaseID

int

Идентификатор базы данных, в которой выполняется хранимая процедура. Значение для базы данных определяется с помощью функции DB_ID.

3

Да

DatabaseName

nvarchar

Имя базы данных, в которой выполняется хранимая процедура.

35

Да

EventSequence

int

Порядковый номер события в запросе.

51

Нет

EventSubClass

int

Описывает причину повторной компиляции:

1 = схема изменена;

2 = статистика изменена;

3 = компиляция отложена;

4 = установленный параметр изменен;

5 = временная таблица изменена;

6 = удаленный набор строк изменен;

7 = разрешения For Browse изменены;

8 = среда уведомлений о запросах изменена;

9 = секционированное представление изменено;

10 = параметры курсора изменены;

11 = запрошен параметр (recompile).

21

Да

GroupID

int

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

66

Да

HostName

nvarchar

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

8

Да

IntegerData2

int

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

55

Да

IsSystem

int

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

1 = системный процесс

0 = пользовательский процесс

60

Да

LineNumber

int

Порядковый номер этой инструкции в пакете (если применимо).

5

Да

LoginName

nvarchar

Имя входа, передавшее пакет.

11

Да

LoginSid

image

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

41

Да

NestLevel

int

Уровень вложенности вызова хранимой процедуры. Например, хранимая процедура my_proc_a вызывает процедуру my_proc_b. В этом случае значение параметра NestLevel процедуры my_proc_a равно 1, а значение параметра NestLevel процедуры my_proc_b равно 2.

29

Да

NTDomainName

nvarchar

Домен Windows, к которому принадлежит пользователь.

7

Да

NTUserName

nvarchar

Имя пользователя Windows для подключенного пользователя.

6

Да

ObjectID

int

Назначенный системой идентификатор объекта, содержащего инструкцию, которая вызвала повторную компиляцию. Этот объект может быть хранимой процедурой, триггером или определяемой пользователем функцией. Для нерегламентированных пакетов или подготовленного SQL столбцы ObjectID и ObjectName возвращают значение NULL.

22

Да

ObjectName

nvarchar

Имя объекта, указанного в столбце ObjectID.

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.

1

Да

TransactionID

bigint

Назначенный системой идентификатор транзакции.

4

Да

XactSequence

bigint

Маркер, который описывает текущую транзакцию.

50

Да