首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监视ColdFusion管理员中的SQL事务?

监视ColdFusion管理员中的SQL事务?
EN

Server Fault用户
提问于 2011-08-18 18:37:58
回答 2查看 795关注 0票数 3

使用CF9、IIS和MSSQL,有办法监视脚本发送的SQL命令吗?更好地显示原始查询的内容。

在看到WEBrick和Rails实际上将生成的查询转储到控制台之后,我就有了这个想法,我想知道CF9是否有类似的东西。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2011-08-18 19:02:06

您可以使用Server事件探查器来执行此操作。您必须设置跟踪才能准确捕获所需的内容,但它肯定会为您提供原始查询。

有关Profiler的信息,请查看这篇MSDN文章

票数 1
EN

Server Fault用户

发布于 2011-08-18 20:32:18

有多种解决方案。正如@squillman所指出的,您可以通过Profiler在Server中查看它。但在CF中,你还有其他的选择。

  • 您可以打开CF的调试输出,在请求结束时查看查询信息。当然,这也有利与弊。如果在开发中,它通常是好的。在prod中,最好避免它(即使您限制可以查看调试输出的IP地址,因为许多人断言,即使是otehr用户仍然支付正在生成的调试的成本)。
  • 您也可以在代码中自己记录信息。从CF7开始,就有了一个新的结果属性,它包含一个包含查询数据(包括SQL语句)的结构。您可以使用CFLOG、CFTRACE和其他标记(或相关的脚本函数)写出这些内容。
  • 您也可以让CF日志本身。在CF8中添加了一个鲜为人知的特性,在数据源定义(在CF8中)的“高级设置”中添加了一个新的复选框,允许您“日志活动”。小心点,太冗长了。
  • 您还可以在各种CF监视器中使用内置的监视功能,无论是内置于can (或Developer,但不包括标准)的免费功能,还是第三方监视器,FusionReactor和SeeFusion。不过,CFSM只关注缓慢的查询。FR和SF可以显示给定请求(或服务器上的所有查询,包括与任何查询无关的查询,如客户端变量清除等)中的每个查询。我特别喜欢FR,因为它记录每个查询(如果您启用查询日志记录),而SF同样只记录缓慢的查询。(每个选项都可以更改为另一个选项。)
  • 最后,所有这些工具都通过包装JDBC驱动程序来进行查询日志记录。在没有这些工具的情况下,您也可以手动地使用许多jdbc包装器替代品中的任何一个来完成这一任务。只要google jdbc包装器,你就会发现很多。

我还在一篇博客文章中更详细地讨论了所有这些选项,虽然它专注于监视CF中的ORM查询,但它同样适用于CF生成的任何查询(以及任何CFML引擎):监视ORM数据库交互: Hibernate、传输等在任何CFML引擎上

最后,我要注意的是,对于使用,请注意它也有其优点和缺点(它可以生成更多关于可作为选项的查询的详细信息,甚至包括每个查询的执行计划图,这是很棒的,但它也像任何监视一样有一些开销风险,这取决于配置的方式。解决这一问题和解决办法的资源很多。

希望这能帮上忙。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/302703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档