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


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

Да

CPU

int

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

18

Да

Duration

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

Да

Duration

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

66

Да

EventSubClass 4

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

Тип данных

Описание

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

Фильтруемый

BigintData1

bigint

NULL

52

Да

BinaryData

image

NULL

2

Да

DatabaseID

int

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

3

Да

EventSequence

int

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

51

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего этот сеанс. Например, если подключиться к SQL Server под именем Имя_входа1 и выполнить инструкцию как пользователь с именем Имя_входа2, в столбце SessionLoginName выводится значение Имя_входа1, а в столбце LoginName — значение Имя_входа2. В этом столбце отображаются как имена входа 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.

66

Да

EventSubClass 5

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

Тип данных

Описание

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

Фильтруемый

BigintData1

bigint

NULL

52

Да

BinaryData

image

NULL

2

Да

DatabaseID

int

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

3

Да

EventSequence

int

Последовательность данного события в запросе.

51

Нет

SessionLoginName

nvarchar

Имя входа пользователя, создавшего этот сеанс. Например, если подключиться к SQL Server под именем Имя_входа1 и выполнить инструкцию как пользователь с именем Имя_входа2, в столбце SessionLoginName выводится значение Имя_входа1, а в столбце LoginName — значение Имя_входа2. В этом столбце отображаются как имена входа 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.

66

Да

См. также

Справочник

Хранимая процедура sp_trace_setevent (Transact-SQL)

Класс событий Showplan XML for Query Compile

Динамические административные представления и функции (Transact-SQL)

Основные понятия

Расширенные события