有没有办法告诉SQL Server 2008 Express将每个查询(包括每个SELECT Query!)都记录到一个文件中?记录SQL Server 2008 Express数据库上的所有查询?
这是一个开发机器,所以记录Select-Queries的负面影响不是问题。
在有人建议使用SQL Profiler之前:这在Express中不可用(是否有人知道它是否可用于Web Edition?),并且我正在寻找一种记录查询的方式,即使当我离开时。
有没有办法告诉SQL Server 2008 Express将每个查询(包括每个SELECT Query!)都记录到一个文件中?记录SQL Server 2008 Express数据库上的所有查询?
这是一个开发机器,所以记录Select-Queries的负面影响不是问题。
在有人建议使用SQL Profiler之前:这在Express中不可用(是否有人知道它是否可用于Web Edition?),并且我正在寻找一种记录查询的方式,即使当我离开时。
SQL Server事件探查:
的更多信息:SQL Server 2008联机丛书 - Using SQL Server Profiler
更新 - SQL Express版本:
一个评论说,MS SQL Server事件探查器不提供易捷版。
目前确实出现了一个自由选择:Profiler for Microsoft SQL Server 2005 Express Edition
您可以记录更改。使用更改数据捕获功能,SQL Server 2008将使这变得更加简单。但SQL Server不擅长记录SELECT。
它在理论上可能与分析器,但它会杀死你的表现。您可能会在桌面上“摆脱它”,但我认为您会注意到您的机器运行速度很慢,导致出现问题。在任何部署之后,它肯定无法工作。
其他一些人已经错过了一个重要的观点:除非他们在2008年改变了一些东西,我没有听说,你不能触发SELECT。
谢谢。那么,这是一款开发机器,如果我可以打开/关闭该功能,则性能不是问题。捕捉生产环境中的选择无论如何看起来都像是一场灾难。 – 2008-09-23 21:05:46
我要么使用触发器,要么使用Red Gate等第三方软件检出SQL日志文件。
红门日志拯救只提供插入,更新和删除。 – 2008-09-23 20:56:58
为了记录,我将提示使用DataWizard's SQL Performance Profiler作为单独的答案,因为它的确与answer pointing at SQL Server Profiler相反。
有14天的免费试用期,但即使您需要购买,3台服务器只需20美元(撰写时,2012年6月28日)。考虑到成千上万使用SQL Server Express版本的人已经保存了这对我来说似乎更公平。
我只使用了迄今为止的试用版,它提供了OP正在寻找的内容:一种跟踪进入特定数据库的所有查询的方法。它还提供将跟踪导出到XML文件。付费版本提供了一些更多的功能,但我还没有尝试过。
声明:我只是另一个开发人员不时与数据库混淆,我不隶属于DataWizard。我恰巧喜欢他们的工具,并想让人们知道它的存在,因为它帮助我分析了我的SQL Server Express安装。除非它只是在开发环境
...后期的答案,但我希望这将是这里其他读者有用...
使用SQL Server Express具有先进的审计要求,如这是不是真的最佳。
您可以使用跟踪(www.broes.nl/2011/10/profiling-on-sql-server-express/)来获取您需要的数据,但您必须自己解析这些数据。
有第三方工具可以做到这一点,但他们的成本会相当高。来自ApexSQL的Log explorer可以记录一切,但选择和Idera’s合规性经理将记录选择语句,但它的成本要高得多。
还有就是要获取有关对MS SQL Server Express的这里描述的被执行的查询信息的另一种方式: http://blog.sqlauthority.com/2008/01/03/sql-server-2005-last-ran-query-recently-ran-query/
简单地说,它运行智能查询系统表和获取信息(文字,时执行)关于查询(或者需要时缓存的查询计划)。因此,您可以在MSSQL 2008 Express版本中获取有关执行查询的信息,而无需使用profiler。
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
谢谢。在Express中不可用:-( – 2008-09-23 21:02:44
我没有亲自尝试过这个,但是这里是: Microsoft SQL Server 2005 Express Edition Profiler http://sqlprofiler.googlepages.com/ – KyleLanser 2008-09-24 04:52:34
当我明天上班时,我会尝试这个替代方案针对mssql 2008. – KyleLanser 2008-09-24 04:57:51