我的情况是这样的: 我的数据库(SQL Server 2005)中有几个视图。 这些视图是在整个组织的Excel中查询的。
我的目标是识别那些长时间没有被任何人使用的观点。
有没有办法计算自特定日期以来请求视图的次数?
由于 阿维
答案 0 :(得分:2)
您可以使用以下查询来获取执行的查询。你可以放置"喜欢" dest.text字段中的运算符以检查视图。
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
答案 1 :(得分:1)
我认为 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'
答案 2 :(得分:0)
除非你全天候运行跟踪,否则我认为你无法做到这一点。您可以打开审核以监控它。但是,如果必须阅读日志,那将是一项艰巨的任务。