在SQL Server 2008 Express数据库上记录所有查询?
时间:2020-03-06 14:37:35 来源:igfitidea点击:
有没有一种方法可以告诉SQL Server 2008 Express将每个查询(包括每个SELECT查询!)记录到一个文件中?
这是一台开发机器,因此记录选择查询的负面影响不成问题。
在有人建议使用SQL事件探查器之前:Express中不提供此功能(有人知道它在Web Edition中是否可用吗?),我正在寻找一种记录查询的方法,即使我不在时也是如此。
解决方案
我们可以记录更改。 SQL Server 2008将通过Change Data Capture使其变得特别容易。但是SQL Server在记录SELECT方面不是很好。
从理论上讲,使用探查器是可行的,但是它将破坏性能。我们可能会在桌面上"摆脱它",但是我想我们会注意到计算机运行得足够慢,从而导致出现问题。而且,在进行任何形式的部署之后,它肯定都无法正常工作。
还有一些其他人已经错过的重要一点:除非他们改变了我没有听说的2008年的内容,否则我们将无法触发SELECT。
我或者使用触发器,或者使用第三方软件(例如Red Gate)来检查SQL日志文件。
SQL Server事件探查器:
- 归档新跟踪
- 显示"常规"选项卡。
- 在这里,我们可以选择"保存到文件:",以便将其记录到文件中。
- 查看"事件选择"选项卡
- 选择我们要记录的项目。
- TSQL SQL:BatchStarting将让我们选择sql
- 存储过程RPC:Completed将为我们提供存储过程。
Microsoft的更多信息:使用SQL Server Profiler的SQL Server 2008联机丛书
更新SQL Express Edition:
有人评论说MS SQL Server Profiler不适用于该快速版。
确实有一个免费的替代方案:Microsoft SQL Server 2005 Express Edition的探查器
似乎可以使用T-SQL创建跟踪
http://support.microsoft.com/kb/283790/
这可能会有所帮助。