使用SSMS工具包进行.net sql查询日志记录

时间:2010-01-13 23:20:57

标签: .net sql-server logging

我刚从http://www.ssmstoolspack.com安装了SSMS工具包,除了我无法查看来自我的.net应用程序的查询外,一切似乎都有效。如果我通过管理研究运行查询SSMS正确显示查询。但在运行我的应用程序时,本地历史记录窗口中不会显示任何查询。

提到在连接字符串中启用登录但我在任何地方都找不到对此的引用,我得到的最接近的是QueryLog_On="yes"但是当我尝试使用Unrecognized attribute 'QueryLog_On'时我得到一个例外。

是否有人使用SSMS并知道如何为.net应用程序设置查询日志记录?

2 个答案:

答案 0 :(得分:1)

SSMS Toolpack不是通用查询记录器,它是一个插件,用于缓存“插入”的应用程序的查询历史记录(在本例中为SSMS)。

如果这是您编写的.NET应用程序,则需要让应用程序缓存自己的查询历史记录 - 可能就像在将每个查询发送到数据库服务器之前附加到的文本框一样简单

即使SSMS工具包不能执行您想要的操作,您也可以列出动态管理视图中最近执行的查询,但需要注意的是它只列出没有查询的查询但是已经从缓存刷新了。以下示例列出了仍在缓存中的最后100个查询 - 基于Michelle Ufford的查询:

SELECT TOP 100
      DB_NAME(dest.[dbid]) AS 'database_name'
    , OBJECT_NAME(dest.objectid, dest.[dbid]) AS 'object_name'
    , dest.text AS 'query_text'
    , MAX(deqs.last_execution_time) AS 'last_execution'
FROM sys.dm_exec_query_stats AS deqs
Cross Apply sys.dm_exec_sql_text(deqs.sql_handle) AS dest
GROUP BY DB_NAME(dest.[dbid])
    , OBJECT_NAME(dest.objectid, dest.[dbid])
    , dest.text
ORDER BY MAX(deqs.last_execution_time) DESC
OPTION (MaxDop 1);

答案 1 :(得分:0)

anjlab的sql profiler sqlprofiler.googlepages.com做我需要的。它非常强大,具有良好的过滤功能,因此您可以通过用户数据库等进行限制