获取在SQL Server实例/数据库中执行的查询和过程的列表

时间:2012-05-12 20:50:44

标签: c# asp.net sql sql-server sql-server-2008

如何获取SQL Server 2008实例上正在发生的事情的列表?

我想知道哪些查询和程序已被执行。 一个优点是知道他们花了多少时间。

此活动列表必须独立于" who"或"什么"引发了它。它可以来自多个应用程序和多个用户。

谢谢!

2 个答案:

答案 0 :(得分:0)

我知道这是一篇较老的帖子,但我刚发现它。如果审计到目前为止做了你想做的事情那么好。但你尝试过 SQL Profiler 吗?因为这是因为这个原因:确切地检查SQL Server实例上发生了什么。您可以将结果保存到表格中以进行进一步分析。 (您甚至可以将其与Windows性能监视器中的结果结合使用,然后您可以检查在此期间服务器上发生的情况)

答案 1 :(得分:0)

选项#1

SELECT ObjectName,       
ObjectID,       
DatabaseName,       
StartTime,       
EventClass,       
EventSubClass,       
ObjectType,       
ServerName,       
LoginName,       
NTUserName,       
ApplicationName  
FROM ::fn_trace_gettable( 'Trace File Path', default )            
where EventClass in (46,47,164) and EventSubclass = 0  and DatabaseID = db_id();

您将如何获得跟踪文件路径?

SELECT Path FROM sys.traces where is_default = 1 ;

选项#2

This approach will tell which column was added, or what command was used to add