加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server-2008 – 如何查看存储过程上次运行的时间

发布时间:2020-12-12 17:00:23 所属栏目:MsSql教程 来源:网络整理
导读:我想查看服务器上每个数据库的所有存储过程的列表,以及上次运行存储过程的时间.我对SQL非常好,但我不知道如何查看sql这样的统计信息,所以我很感激有点帮助找到这些信息. 编辑: 从答案我得到它听起来像我想的那样是不可能的.我当时认为可以像上次访问表时看到
我想查看服务器上每个数据库的所有存储过程的列表,以及上次运行存储过程的时间.我对SQL非常好,但我不知道如何查看sql这样的统计信息,所以我很感激有点帮助找到这些信息.

编辑:

从答案我得到它听起来像我想的那样是不可能的.我当时认为可以像上次访问表时看到的那样:

select  t.name,user_seeks,user_scans,user_lookups,user_updates,last_user_seek,last_user_scan,last_user_lookup,last_user_update

from    sys.dm_db_index_usage_stats i JOIN
        sys.tables t ON (t.object_id = i.object_id)

where   database_id = db_id()

以上脚本是从http://blog.sqlauthority.com/2009/05/09/sql-server-find-last-date-time-updated-for-any-table/的评论中窃取的.

解决方法

这是一个小脚本,它将列出服务器实例上所有数据库中的所有用户存储过程(即那些未附带SQL Server或不是系统存储过程的过程):
CREATE TABLE #ProcTable (
    DbName sysname,ProcName sysname
)

DECLARE @command1 NVARCHAR(1000)

SET @command1 = 'USE [?];INSERT #ProcTable 
SELECT ''[?]'',Name
FROM sys.all_objects
WHERE TYPE=''p''
AND is_ms_shipped=0'

EXEC sp_msforeachdb @command1

SELECT * FROM #ProcTable 
ORDER BY DbName,ProcName

DROP TABLE #ProcTable

如果您没有运行将捕获exec事件的跟踪(并且没有运行默认跟踪),那么您必须具有应用程序级别审计机制来捕获存储过程的运行.如果你没有其中任何一个,那么你将无法及时回过头来查看触发器的运行时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读