在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/

这可能会有所帮助。