私のシナリオは次のようなものです。データベース (SQL Server 2005) にいくつかのビューがあります。これらのビューは、組織全体で Excel からクエリされます。
私の目標は、長い間誰も使用していないビューを特定することです。
特定の日付以降にビューがリクエストされた回数をカウントする方法はありますか?
ありがとうアヴィ
私のシナリオは次のようなものです。データベース (SQL Server 2005) にいくつかのビューがあります。これらのビューは、組織全体で Excel からクエリされます。
私の目標は、長い間誰も使用していないビューを特定することです。
特定の日付以降にビューがリクエストされた回数をカウントする方法はありますか?
ありがとうアヴィ
次のクエリを使用して、実行されたクエリを取得できます。dest.textフィールドに「Like」演算子を配置して、ビューを確認できます。
SELECT deqs.last_execution_time AS [Time], dest.text AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DES
DMV とsysobjectsを組み合わせれば、これがわかると思います。これにより、ビュー、ビューの名前、最後に実行された日時などを参照する実行されたすべてのクエリが表示されるはずです。
SELECT s2.text AS Query,
so.name AS ViewName,
creation_time,
last_execution_time,
execution_count
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.Dm_exec_sql_text(sql_handle) AS s2
INNER JOIN sys.objects so
ON so.object_id = s2.objectid
AND so.type = 'V'
24 時間年中無休でトレースを実行していない限り、これを行うことはできないと思います。監視するために監査をオンにすることができます。ただし、ログを読み通す必要があるため、大きな作業になります。