【发布时间】:2008-09-23 20:50:25
【问题描述】:
有没有办法告诉 SQL Server 2008 Express 将每个查询(包括每个 SELECT 查询!)记录到文件中?
这是一台开发机器,因此记录选择查询的负面影响不是问题。
在有人建议使用 SQL Profiler 之前:这在 Express 中不可用(有谁知道它在 Web 版中是否可用?)我正在寻找一种方法来记录查询,即使我不在。
【问题讨论】:
标签: sql-server
有没有办法告诉 SQL Server 2008 Express 将每个查询(包括每个 SELECT 查询!)记录到文件中?
这是一台开发机器,因此记录选择查询的负面影响不是问题。
在有人建议使用 SQL Profiler 之前:这在 Express 中不可用(有谁知道它在 Web 版中是否可用?)我正在寻找一种方法来记录查询,即使我不在。
【问题讨论】:
标签: sql-server
SQL Server 探查器:
来自 Microsoft 的更多信息:SQL Server 2008 联机丛书 - Using SQL Server Profiler
更新 - SQL Express 版:
有评论指出 MS SQL Server Profiler 不适用于快速版。
似乎确实有一个免费的替代方案:Profiler for Microsoft SQL Server 2005 Express Edition
【讨论】:
还有另一种方法可以获取有关已在 MS SQL Server Express described here 上执行的查询的信息。
简而言之,它对系统表运行智能查询并获取有关查询(或缓存的查询计划,如果需要)的信息(文本,执行时间)。因此,您可以在 MSSQL 2008 Express 版本中获得有关执行查询的信息,而无需分析器。
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
【讨论】:
…迟到的答案,但我希望它对这里的其他读者有用…
将 SQL Server Express 与诸如此类的高级审计要求一起使用并不是真正的最佳选择,除非它仅在开发环境中使用。
您可以使用跟踪 (www.broes.nl/2011/10/profiling-on-sql-server-express/) 来获取您需要的数据,但您必须自己解析这些数据。
有第三方工具可以做到这一点,但它们的成本会相当高。 ApexSQL 的Log explorer 可以记录除 select 之外的所有内容,Idera’s 合规经理也会记录 select 语句,但成本要高得多。
【讨论】:
您可以记录更改。 SQL Server 2008 将通过变更数据捕获使这变得特别容易。但是 SQL Server 不太擅长记录 SELECT。
探查器理论上是可行的,但它会影响您的性能。您可能会在桌面上“侥幸逃脱”,但我认为您会注意到您的机器运行缓慢,足以引起问题。而且在任何类型的部署之后它肯定都不起作用。
其他几个人已经错过了一个重要的点:除非他们在 2008 年改变了一些我没有听说过的东西,否则你不能触发 SELECT。
【讨论】:
为了记录,我将使用DataWizard's SQL Performance Profiler 作为单独答案的提示包括在内,因为它与answer pointing at SQL Server Profiler 完全相反。
有 14 天的免费试用期,但即使您需要购买,3 台服务器也只需 20 美元(撰写本文时,2012-06-28)。考虑到使用 SQL Server Express 版本的每个人已经节省了数千人,这对我来说似乎更公平。
到目前为止,我只使用了试用版,它提供了 OP 正在寻找的东西:一种跟踪进入特定数据库的所有查询的方法。它还提供将跟踪导出到 XML 文件的功能。付费版提供了更多功能,但我还没有尝试过。
免责声明:我只是不时搞数据库的另一个开发人员,我与 DataWizard 没有任何关系。我碰巧喜欢他们的工具,并想让人们知道它的存在,因为它帮助我分析了我的 SQL Server Express 安装。
【讨论】:
Developer Edition 的 SQL Server! 50 美元是一笔非常棒的交易。我同意你的观点,即旧版本的软件应该仍然可用。但是对于新用户,我真的不觉得痛苦。他们要么买,要么不买。
我会使用触发器或使用 Red Gate 等第三方软件来检查您的 SQL 日志文件。
【讨论】:
【讨论】: