51

SSRS 2005 で特定のレポートを実行しているユーザーと、そのレポートを実行している時刻を追跡する簡単な方法はありますか? SSRS の実装には約 80 件のレポートがあり、安全に放牧できるレポートがあるかどうかを確認しようとしています。どのレポートが使用されていないかをどうにかして簡単に確認できれば、それは私たちの助けになるでしょう。何か案は?

4

6 に答える 6

50

次の記事には、これに関するレポートを生成するための適切なアドバイスとクエリがいくつかあります。

たとえば、最も使用されているレポートを表示する場合は、次の操作を実行できます。

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 記事を参照してください。

于 2012-09-26T12:20:44.340 に答える
4

レポートログは使いにくいといつも思っていました。Reporting Services は、そのすべてのアクティビティの記録を、 ExecutionLogというレポート データベースのテーブルに保持します。

このテーブルをクエリするために使用するレポートがいくつかあるので、実際に使用されているレポートと、最もヘビーなユーザーが誰であるかを確認できます。

于 2009-07-25T17:30:19.750 に答える
2

実行ログを使用して、レポートの使用状況を監視できます。これを確認してくださいhttp://technet.microsoft.com/en-us/library/aa964131(SQL.90).aspx

クエリを実行して、レポートの使用状況を見つけることもできます。このリンクでマズの返信を確認してくださいhttp://www.sqlservercentral.com/Forums/Topic433562-150-1.aspx

乾杯

于 2009-07-24T17:44:52.613 に答える
0
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)

-- レポートとフォルダのみを検索する場合はコメントを解除します

于 2019-07-23T13:43:14.947 に答える