2

我的场景是这样的:我的数据库中有几个视图(SQL Server 2005)。这些视图是从整个组织的 Excel 中查询的。

我的目标是找出那些很久没有被任何人使用过的视图。

有没有办法计算自特定日期以来请求查看的次数?

谢谢阿维

4

3 回答 3

2

您可以使用以下查询来获取执行的一些查询。您可以在 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
于 2012-05-14T11:42:17.750 回答
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'
于 2012-05-14T11:48:38.603 回答
0

我认为除非您 24/7 全天候运行跟踪,否则您将无法做到这一点。您可以打开审核以对其进行监控。但是,这将是一项艰巨的任务,因为必须通读日志。

于 2012-05-14T11:30:42.350 回答