有没有办法让SQL Server 2008 Express记录每个查询(包括每个SELECT查询!)到一个文件里?
它是一台开发机器,所以记录Select-Queries的负面影响不是问题。
在有人建议使用SQL Profiler之前:这在Express中不可用(有人知道它在Web版中是否可用吗?)我正在寻找一种即使我不在的时候也能记录查询的方法。
发布于 2013-07-24 03:35:46
还有一种方法可以获取有关已在MS SQL Server Express described here上执行的查询的信息。
简而言之,它对系统表运行智能查询,并获取有关查询的信息(文本、执行时间)(如果需要,还可以获取缓存的查询计划)。因此,在MSSQL2008Express版中,您可以在没有事件探查器的情况下获得有关已执行查询的信息。
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 DESC
发布于 2013-05-20 17:30:08
…回答晚了,但我希望它能对这里的其他读者有所帮助…
除非只在开发环境中使用SQL Server Express,否则使用具有高级审核要求的SQL Server Express并不是真正的最佳选择。
您可以使用traces (www.broes.nl/2011/10/profiling-on-sql-server-express/)来获取所需的数据,但您必须自己解析这些数据。
有第三方工具可以做到这一点,但它们的成本将相当高。来自ApexSQL的Log explorer可以记录除select之外的所有内容,Idera’s遵从性管理器也会记录select语句,但它的成本要高得多。
发布于 2008-09-23 20:52:56
您可以记录更改。SQL Server 2008将通过变更数据捕获使这一点变得特别容易。但是SQL Server并不擅长记录选择。
从理论上讲,分析器可以做到这一点,但它会扼杀您的性能。你可能会在你的桌面上“逃脱惩罚”,但我想你会注意到你的机器运行得很慢,足以导致问题。而且在任何类型的部署之后,它肯定都不会工作。
其他几个人已经忽略了一个重要的点:除非他们为2008年做了一些我没有听说过的事情,否则你不能触发SELECT。
https://stackoverflow.com/questions/123781
复制相似问题