Журнал выполнения сервера отчетов и представление ExecutionLog3

Журнал выполнения для сервера отчетов содержит сведения об отчетах, выполняемых на сервере или на нескольких серверах при использовании масштабного развертывания. Журнал выполнения отчетов можно использовать для исследования частоты, с которой запрашивается отчет, частоты использования различных форматов и времени обработки в миллисекундах, занимаемого каждой фазой обработки. Журнал содержит сведения о том, сколько времени затрачено на выполнение запроса к набору данных отчета и на обработку данных. Администратор сервера отчетов может просматривать данные в журнале, выявлять долго выполняющиеся задачи и представлять авторам отчетов рекомендации по конкретным вопросам (наборы данных или обработка), где может потребоваться их доработка.

Сервер отчетов, настроенный для режима интеграции с SharePoint, может использовать журналы SharePoint ULS. Дополнительные сведения см. в разделе Как включить события служб Reporting Services в журнал трассировки SharePoint (ULC).

Просмотр данных журнала

Сервер отчета записывает данные о выполнении отчетов во внутреннюю таблицу базы данных. Сведения из таблицы доступны через представления SQL Server.

Журнал выполнения отчетов сохраняется в базе данных на сервере отчетов, которая по умолчанию имеет имя ReportServer. В следующих представлениях SQL содержатся сведения журнала выполнения. В последних версиях добавлены представления «2» и «3», которые содержат новые поля или поля с более понятными именами, чем в предыдущих версиях. Более старые представления также остались в продукте, с ними могли работать ранее написанные приложения. При отсутствии зависимости от старого представления (например, ExecutionLog) рекомендуется пользоваться его новой версией, то есть ExecutionLog3.

Значения параметров конфигурации для журнала выполнения сервера отчетов

Вывод сведений о выполнении отчетов в журнал можно включить или отключить на странице «Свойства сервера» в среде SQL Server Management Studio.

По умолчанию записи журнала хранятся 60 суток. Записи с истекшим сроком хранения удаляются ежедневно в 02:00. При готовой установке в заданный момент времени доступны данные только за последние 60 дней.

  • ExecutionLog3

  • Поле AdditionalInfo

  • ExecutionLog2

  • ExecutionLog

Возможность ограничения количества строк или типа элементов, вносимых в журнал, отсутствует. Тем не менее, можно создавать отчеты, получающие данные из журнала, которые необходимо отслеживать.

Поля журнала (ExecutionLog3)

В этом представлении добавлены новые поля, в том числе AdditionalInfo, которое содержит XML-структуру, состоящую из одного или нескольких дополнительных информационных полей. Ниже представлена простая инструкция на языке Transact SQL для извлечения полей из представления ExecutionLog3. В этом примере предполагается, что база данных сервера отчетов называется ReportServer:

Use ReportServer
select * from ExecutionLog3 order by TimeStart DESC

В следующей таблице приведены данные, которые фиксируются в журнале выполнения отчетов

Столбец

Описание

InstanceName

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

ItemPath

Путь, по которому сохранен отчет или элемент отчета.

UserName

Идентификатор пользователя.

ExecutionID

RequestType

Возможные значения:

  • Интерактивный

  • Подписка

Анализ данных журнала, отфильтрованного по RequestType=Subscription и отсортированного по TimeStart, может выявить периоды интенсивного использования подписок. При этом может оказаться полезным изменить время рассылок отчетов.

Формат

Формат подготовки к просмотру.

Параметры

Значения аргументов, используемых при выполнении отчета.

ItemAction

Возможные значения:

  • Render

  • Сортировать

  • BookMarkNavigation

  • DocumentNavigation

  • GetDocumentMap

  • Findstring

  • Выполнение

TimeStart

Время начала и завершения обработки отчета, указывающее на его продолжительность.

TimeEnd

TimeDataRetrieval

Число миллисекунд, затраченных на получение данных, обработку запроса и его подготовку.

TimeProcessing

TimeRendering

Source

Источник выполнения запроса (1 = напрямую, 2 = кэш, 3 = моментальный снимок, 4 = журнал).

Status

Состояние (либо rsSuccess, либо код ошибки. Если ошибок несколько, то записывается только первая).

ByteCount

Размер отчетов, готовых для просмотра (в байтах).

RowCount

Количество возвращенных по запросам строк.

AdditionalInfo

Контейнер свойств XML, содержащий дополнительные сведения о выполнении. Содержимое может быть различным для каждой строки.

Значок стрелки, используемый со ссылкой «В начало»В начало

AdditionalInfo

Ниже представлен пример такого кода:

<AdditionalInfo>
  <ProcessingEngine>2</ProcessingEngine>
  <ScalabilityTime>
    <Pagination>0</Pagination>
    <Processing>0</Processing>
  </ScalabilityTime>
  <EstimatedMemoryUsageKB>
    <Pagination>4</Pagination>
    <Processing>18</Processing>
  </EstimatedMemoryUsageKB>
  <DataExtension>
    <SQL>1</SQL>
  </DataExtension>
</AdditionalInfo>

В следующей таблице описаны некоторые значения, показанные в таблице AdditionalInfo.

Свойство

Примечания

ProcessingEngine

1=SQL Server 2005, 2=новое ядро с возможностью обработки по требованию. Если в большинстве ваших отчетов по-прежнему отображается значение 1, то можно выяснить, как именно их можно переработать, чтобы они могли обрабатываться новым и более эффективным ядром обработки по запросу.

ScalabilityTime

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

EstimatedMemoryUsageKB

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

DataExtension

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

Значок стрелки, используемый со ссылкой «В начало»В начало

Поля журнала (ExecutionLog2)

В этом представлении добавлены новые поля, в том числе AdditionalInfo, которое содержит XML-структуру, состоящую из одного или нескольких дополнительных информационных полей. Ниже представлена простая инструкция Transact SQL для извлечения полей из представления ExecutionLog2. В этом примере предполагается, что база данных сервера отчетов называется ReportServer:

Use ReportServer
select * from ExecutionLog2 order by TimeStart DESC

В следующей таблице приведены данные, которые фиксируются в журнале выполнения отчетов

Столбец

Описание

InstanceName

Имя экземпляра сервера отчетов, обработавшего запрос.

ReportPath

Структура пути к отчету. Например, отчет с именем «test», находящийся в корневой папке Report Manager, будет иметь структуру пути ReportPath «/test».

Отчет с именем «тест», сохраненный в папке «Samples» в Report Manager, будет иметь структуру пути ReportPath «/Samples/test».

UserName

Идентификатор пользователя.

ExecutionID

RequestType

Тип запроса (пользовательский или системный).

Формат

Формат подготовки к просмотру.

Параметры

Значения аргументов, используемых при выполнении отчета.

ReportAction

Возможные значения: Render, Sort, BookMarkNavigation, DocumentNavigation, GetDocumentMap, Findstring

TimeStart

Время начала и завершения обработки отчета, указывающее на его продолжительность.

TimeEnd

TimeDataRetrieval

Число миллисекунд, затраченных на получение данных, обработку запроса и его подготовку.

TimeProcessing

TimeRendering

Source

Источник выполнения запроса (1 = напрямую, 2 = кэш, 3 = моментальный снимок, 4 = журнал).

Status

Состояние (либо rsSuccess, либо код ошибки. Если ошибок несколько, то записывается только первая).

ByteCount

Размер отчетов, готовых для просмотра (в байтах).

RowCount

Количество возвращенных по запросам строк.

AdditionalInfo

Контейнер свойств XML, содержащий дополнительные сведения о выполнении.

Значок стрелки, используемый со ссылкой «В начало»В начало

Поля журнала (ExecutionLog)

Ниже представлена простая инструкция Transact SQL для извлечения полей из представления ExecutionLog. В этом примере предполагается, что база данных сервера отчетов называется ReportServer:

Use ReportServer
select * from ExecutionLog order by TimeStart DESC

В следующей таблице приведены данные, которые фиксируются в журнале выполнения отчетов

Столбец

Описание

InstanceName

Имя экземпляра сервера отчетов, обработавшего запрос.

ReportID

Идентификатор отчета.

UserName

Идентификатор пользователя.

RequestType

Возможные значения:

True = запрос подписки

False = интерактивный запрос

Формат

Формат подготовки к просмотру.

Параметры

Значения аргументов, используемых при выполнении отчета.

TimeStart

Время начала и завершения обработки отчета, указывающее на его продолжительность.

TimeEnd

TimeDataRetrieval

Число миллисекунд, затраченных на получение данных, обработку запроса и его подготовку.

TimeProcessing

TimeRendering

Source

Источник выполнения отчета Возможные значения: (1=Live, 2=Cache, 3=Snapshot, 4=History, 5=Adhoc, 6=Session, 7=RDCE).

Status

Возможные значения: rsSuccess, rsProcessingAborted или код ошибки. Если возникло несколько ошибок, то записывается только первая.

ByteCount

Размер отчетов, готовых для просмотра (в байтах).

RowCount

Количество возвращенных по запросам строк.

Значок стрелки, используемый со ссылкой «В начало»В начало

Журнал изменений

Журнал изменений:

Дата

Изменение

сентябрь 2011 г.

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