Класс событий Performance Statistics

Класс событий Performance Statistics можно использовать для наблюдения за производительностью выполняемых запросов, хранимых процедур и триггеров. Каждый из шести подклассов событий обозначает событие, относящееся ко времени существования запросов, хранимых процедур и триггеров в системе. Сочетая эти подклассы событий и связанные с ними динамические административные представления sys.dm_exec_query_stats, sys.dm_exec_procedure_stats и sys.dm_exec_trigger_stats, можно восстановить историю производительности любого заданного запроса, хранимой процедуры или триггера.

Столбцы данных класса событий Performance Statistics

Следующие таблицы описывают столбцы данных класса событий, связанные с каждым из следующих подклассов событий: EventSubClass 0, EventSubClass 1, EventSubClass 2, EventSubClass 3, EventSubClass 4 и EventSubClass 5.

EventSubClass 0

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

Тип данных

Описание

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

Фильтруемый

BigintData1

bigint

NULL

52

Да

BinaryData

image

NULL

2

Да

DatabaseID

int

Идентификатор базы данных, указанной в инструкции USE database, или базы данных по умолчанию, если для данного экземпляра инструкция USE database не выполнялась. Программа Приложение SQL Server Profiler отображает имя базы данных, если столбец данных ServerName фиксируется при трассировке и при этом сервер доступен. Значение для базы данных можно определить, используя функцию DB_ID.

3

Да

EventSequence

int

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

51

Нет

EventSubClass

int

Тип подкласса события:

0 = Новый текст пакета SQL, который пока отсутствует в кэше.

Следующие типы EventSubClass создаются в трассировке для нерегламентированных пакетов.

Для нерегламентированных пакетов, состоящих из n запросов.

  • 1 типа 0

21

Да

IntegerData2

int

NULL

55

Да

ObjectID

int

NULL

22

Да

Offset

int

NULL

61

Да

PlanHandle

Image

NULL

65

Да

SessionLoginName

nvarchar

Имя входа пользователя, создавшего сеанс. Например, при подключении к SQL Server по имени Login1 и при выполнении инструкции под именем Login2, SessionLoginName будет содержать значение Login1, а LoginName — значение Login2. В данном столбце отображаются имена входа SQL Server и Windows.

64

Да

SPID

int

Идентификатор сеанса, во время которого произошло событие.

12

Да

SqlHandle

image

Дескриптор SQL, который можно использовать для получения текста SQL пакета с помощью динамического административного представления sys.dm_exec_sql_text.

63

Да

StartTime

datetime

Время начала события, если оно известно.

14

Да

TextData

ntext

Текст пакета SQL.

1

Да

EventSubClass 1

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

Тип данных

Описание

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

Фильтруемый

BigintData1

bigint

Совокупное количество повторных компиляций данного плана.

52

Да

BinaryData

image

Двоичный XML скомпилированного плана.

2

Да

DatabaseID

int

Идентификатор базы данных, указанной в инструкции USE database, или базы данных по умолчанию, если для данного экземпляра инструкция USE database не выполнялась. Программа Приложение SQL Server Profiler отображает имя базы данных, если столбец данных ServerName фиксируется при трассировке и при этом сервер доступен. Значение для базы данных можно определить, используя функцию DB_ID.

3

Да

EventSequence

int

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

51

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего сеанс. Например, при соединении с SQL Server под именем Login1 и при выполнении инструкции под именем Login2 SessionLoginName будет содержать значение Login1, а LoginName — значение Login2. В данном столбце отображаются имена входа SQL Server и Windows.

64

Да

EventSubClass

int

Тип подкласса события:

1 = Скомпилированы запросы в хранимой процедуре.

Следующие типы EventSubClass создаются в трассировке для хранимых процедур.

Для хранимых процедур, состоящих из n запросов.

  • n типа 1

21

Да

IntegerData2

int

Конечное смещение инструкции в хранимой процедуре:

-1 для конечного смещения хранимой процедуры.

55

Да

ObjectID

int

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

22

Да

Offset

int

Начальное смещение инструкции в пределах хранимой процедуры или пакета.

61

Да

SPID

int

Идентификатор сеанса, во время которого произошло событие.

12

Да

SqlHandle

image

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

63

Да

StartTime

datetime

Время начала события, если оно известно.

14

Да

TextData

ntext

NULL

1

Да

PlanHandle

image

Дескриптор скомпилированного плана для хранимой процедуры. Может быть использован для получения плана XML с помощью динамического административного представления sys.dm_exec_query_plan.

65

Да

ObjectType

int

Значение, представляющее тип объекта, связанного с событием.

8272 = хранимая процедура.

28

Да

BigintData2

bigint

Общий объем памяти в килобайтах, используемой во время компиляции.

53

Да

ЦП

int

Общее процессорное время в миллисекундах, затраченное на компиляцию.

18

Да

Длительность

int

Общее время в микросекундах, затраченное на компиляцию.

13

Да

IntegerData

int

Размер скомпилированного плана в килобайтах.

25

Да

EventSubClass 2

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

Тип данных

Описание

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

Фильтруемый

BigintData1

bigint

Совокупное количество повторных компиляций данного плана.

52

Да

BinaryData

image

Двоичный XML скомпилированного плана.

2

Да

DatabaseID

int

Идентификатор базы данных, указанной в инструкции USE database, или базы данных по умолчанию, если для данного экземпляра инструкция USE database не выполнялась. Программа Приложение SQL Server Profiler отображает имя базы данных, если столбец данных ServerName фиксируется при трассировке и при этом сервер доступен. Значение для базы данных можно определить, используя функцию DB_ID.

3

Да

EventSequence

int

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

51

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего сеанс. Например, при соединении с SQL Server под именем Login1 и при выполнении инструкции под именем Login2 SessionLoginName будет содержать значение Login1, а LoginName — значение Login2. В данном столбце отображаются имена входа SQL Server и Windows.

64

Да

EventSubClass

int

Тип подкласса события:

2 = Скомпилированы запросы в нерегламентированной инструкции SQL.

Следующие типы EventSubClass создаются в трассировке для нерегламентированных пакетов.

Для нерегламентированных пакетов, состоящих из n запросов.

  • n типа 2

21

Да

IntegerData2

int

Конечное смещение инструкции в пакете:

-1 для конечного смещения пакета.

55

Да

ObjectID

int

н/д

22

Да

Offset

int

Начальное смещение инструкции в пределах пакета.

0 для начального смещения пакета.

61

Да

SPID

int

Идентификатор сеанса, во время которого произошло событие.

12

Да

SqlHandle

image

Дескриптор SQL. Может быть использован для получения текста SQL пакета с помощью динамического административного представления dm_exec_sql_text.

63

Да

StartTime

datetime

Время начала события, если оно известно.

14

Да

TextData

ntext

NULL

1

Да

PlanHandle

image

Дескриптор скомпилированного плана для пакета. Может быть использован для получения плана XML пакета с помощью динамического административного представления dm_exec_query_plan.

65

Да

BigintData2

bigint

Общий объем памяти в килобайтах, используемой во время компиляции.

53

Да

CPU

int

Общее процессорное время в микросекундах, затраченное на компиляцию.

18

Да

Длительность

int

Общее время в миллисекундах, затраченное на компиляцию.

13

Да

IntegerData

int

Размер скомпилированного плана в килобайтах.

25

Да

EventSubClass 3

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

Тип данных

Описание

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

Фильтруемый

BigintData1

bigint

Совокупное количество повторных компиляций данного плана.

52

Да

BinaryData

image

NULL

2

Да

DatabaseID

int

Идентификатор базы данных, указанной в инструкции USE database, или базы данных по умолчанию, если для данного экземпляра инструкция USE database не выполнялась. Программа Приложение SQL Server Profiler отображает имя базы данных, если столбец данных ServerName фиксируется при трассировке и при этом сервер доступен. Значение для базы данных можно определить, используя функцию DB_ID.

3

Да

EventSequence

int

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

51

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего сеанс. Например, при соединении с SQL Server под именем Login1 и при выполнении инструкции под именем Login2 SessionLoginName будет содержать значение Login1, а LoginName — значение Login2. В данном столбце отображаются имена входа SQL Server и Windows.

64

Да

EventSubClass

int

Тип подкласса события:

3 = Запрос удален из кэша, и данные предыстории производительности этого плана тоже будут уничтожены.

Следующие типы EventSubClass формируются при трассировке.

Для нерегламентированных пакетов, состоящих из n запросов.

  • 1 типа 3, когда запрос сброшен из кэша.

Для хранимых процедур, состоящих из n запросов.

  • 1 типа 3, когда запрос сброшен из кэша.

21

Да

IntegerData2

int

Конечное смещение инструкции в хранимой процедуре или пакете:

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

55

Да

ObjectID

int

NULL

22

Да

Offset

int

Начальное смещение инструкции в пределах хранимой процедуры или пакета:

0 для начального смещения хранимой процедуры или пакета.

61

Да

SPID

int

Идентификатор сеанса, во время которого произошло событие.

12

Да

SqlHandle

image

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

63

Да

StartTime

datetime

Время начала события, если оно известно.

14

Да

TextData

ntext

QueryExecutionStats

1

Да

PlanHandle

image

Дескриптор скомпилированного плана для хранимой процедуры или пакета. Может быть использован для получения плана XML с помощью динамического административного представления dm_exec_query_plan.

65

Да

GroupID

int

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

66

Да

EventSubClass 4

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

Тип данных

Описание

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

Фильтруемый

BigintData1

bigint

NULL

52

Да

BinaryData

image

NULL

2

Да

DatabaseID

int

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

3

Да

EventSequence

int

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

51

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего сеанс. Например, при соединении с SQL Server под именем Login1 и при выполнении инструкции под именем Login2 SessionLoginName будет содержать значение Login1, а LoginName — значение Login2. В данном столбце отображаются имена входа SQL Server и Windows.

64

Да

EventSubClass

int

Подкласс типа событий.

4 = Кэшированная хранимая процедура удалена из кэша, и связанные с ней данные об истории производительности будут уничтожены.

21

Да

IntegerData2

int

NULL

55

Да

ObjectID

int

Идентификатор хранимой процедуры. Соответствует столбцу object_id в представлении sys.procedures.

22

Да

Offset

int

NULL

61

Да

SPID

int

Идентификатор сеанса, во время которого произошло событие.

12

Да

SqlHandle

image

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

63

Да

StartTime

datetime

Время начала события, если оно известно.

14

Да

TextData

ntext

ProcedureExecutionStats

1

Да

PlanHandle

image

Дескриптор скомпилированного плана для хранимой процедуры. Может быть использован для получения плана XML с помощью динамического административного представления dm_exec_query_plan.

65

Да

GroupID

int

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

66

Да

EventSubClass 5

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

Тип данных

Описание

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

Фильтруемый

BigintData1

bigint

NULL

52

Да

BinaryData

image

NULL

2

Да

DatabaseID

int

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

3

Да

EventSequence

int

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

51

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего сеанс. Например, при соединении с SQL Server под именем Login1 и при выполнении инструкции под именем Login2 SessionLoginName будет содержать значение Login1, а LoginName — значение Login2. В данном столбце отображаются имена входа SQL Server и Windows.

64

Да

EventSubClass

int

Подкласс типа событий.

5 = Кэшированный триггер удален из кэша, и связанные с ним данные об истории производительности будут уничтожены.

21

Да

IntegerData2

int

NULL

55

Да

ObjectID

int

Идентификатор триггера. Соответствует столбцу object_id в представлениях каталогов sys.triggers/sys.server_triggers.

22

Да

Offset

int

NULL

61

Да

SPID

int

Идентификатор сеанса, во время которого произошло событие.

12

Да

SqlHandle

image

Дескриптор SQL, который можно использовать для получения текста SQL триггера с помощью динамического административного представления dm_exec_sql_text.

63

Да

StartTime

datetime

Время начала события, если оно известно.

14

Да

TextData

ntext

TriggerExecutionStats

1

Да

PlanHandle

image

Дескриптор скомпилированного плана для триггера. Может быть использован для получения плана XML с помощью динамического административного представления dm_exec_query_plan.

65

Да

GroupID

int

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

66

Да