SSRS 2005 で特定のレポートを実行しているユーザーと、そのレポートを実行している時刻を追跡する簡単な方法はありますか? SSRS の実装には約 80 件のレポートがあり、安全に放牧できるレポートがあるかどうかを確認しようとしています。どのレポートが使用されていないかをどうにかして簡単に確認できれば、それは私たちの助けになるでしょう。何か案は?
6 に答える
次の記事には、これに関するレポートを生成するための適切なアドバイスとクエリがいくつかあります。
たとえば、最も使用されているレポートを表示する場合は、次の操作を実行できます。
SELECT COUNT(Name) AS ExecutionCount,
Name,
SUM(TimeDataRetrieval) AS TimeDataRetrievalSum,
SUM(TimeProcessing) AS TimeProcessingSum,
SUM(TimeRendering) AS TimeRenderingSum,
SUM(ByteCount) AS ByteCountSum,
SUM([RowCount]) AS RowCountSum
FROM (SELECT TimeStart,
Catalog.Type,
Catalog.Name,
TimeDataRetrieval,
TimeProcessing,
TimeRendering,
ByteCount,
[RowCount]
FROM Catalog
INNER JOIN
ExecutionLog
ON Catalog.ItemID = ExecutionLog.ReportID
WHERE Type = 2
) AS RE
GROUP BY Name
ORDER BY COUNT(Name) DESC,
Name;
注意すべきことの 1 つは、デフォルトでは、実行ログは 2 か月分のデータしか保持しないということです。この動作はExecutionLogDaysKept
サーバー プロパティで制御できます。この technet 記事を参照してください。
レポートログは使いにくいといつも思っていました。Reporting Services は、そのすべてのアクティビティの記録を、 ExecutionLogというレポート データベースのテーブルに保持します。
このテーブルをクエリするために使用するレポートがいくつかあるので、実際に使用されているレポートと、最もヘビーなユーザーが誰であるかを確認できます。
実行ログを使用して、レポートの使用状況を監視できます。これを確認してくださいhttp://technet.microsoft.com/en-us/library/aa964131(SQL.90).aspx
クエリを実行して、レポートの使用状況を見つけることもできます。このリンクでマズの返信を確認してくださいhttp://www.sqlservercentral.com/Forums/Topic433562-150-1.aspx
乾杯
USE ReportServer
SELECT c.Name AS ItemName
, CASE c.Type
WHEN 1 THEN 'Folder'
WHEN 2 THEN 'Report'
WHEN 3 THEN 'Resource'
WHEN 4 THEN 'Linked Report'
WHEN 5 THEN 'Data Source'
ELSE CAST(c.Type AS VARCHAR(100))
END AS ItemType
, c.Path AS ItemPath
, ( SELECT TOP 1 TimeStart FROM dbo.ExecutionLog t1 WHERE t1.ReportID = c.ItemID ORDER BY TimeStart DESC ) AS LastRunDate
, ( SELECT TOP 1 UserName FROM dbo.ExecutionLog t1 WHERE t1.ReportID = c.ItemID ORDER BY TimeStart DESC ) AS LastUser
FROM Catalog AS c WITH (NOLOCK)
WHERE 1=1
--AND c.Type IN (1,2)
-- レポートとフォルダのみを検索する場合はコメントを解除します