【问题标题】:sql profiler shows nhibernate running queries twice?sql 探查器显示 nhibernate 运行查询两次?
【发布时间】:2009-02-23 10:48:22
【问题描述】:

我一直在对我正在开发的应用程序进行一些性能分析。该应用程序是基于 Web (asp.net) 的,在 MSSQL Server (2005) 上使用旧版本的 NHibernate (1.0)。

对应用程序运行探查器似乎有点奇怪,因为我们似乎要查询对象两次,一次作为直接查询,一次包装在 sp_executesql 中。例如:

从表中选择 col1、col2 exec sp_executesql N'SELECT col1, col2 FROM TABLE'

查看分析器中的统计信息,我可以看到它们是不同的事件(选择记录为事件 45 - SP:StmtCompleted,而对 sp_executesql 的调用记录为事件 10 - RPC:Completed)。

在此之前我没有过多地使用 NHibernate,但我无法想象这是正常行为。我是否误读了配置文件跟踪(在这种情况下我应该如何解释上述内容),还是有充分的理由?

如果上述情况和我想的一样糟糕,有没有办法关闭这种行为?

谢谢

【问题讨论】:

    标签: nhibernate profiling sql-server-profiler


    【解决方案1】:

    您的查询不会运行两次。只是这两个事件是针对同一个语句触发的。

    【讨论】:

    • 好的 - 所以据我了解,为什么一个包裹在 sp_executesql 中,而第二个没有?
    • 为什么手动运行 sp_executesql 语句不会重现相同的行为?
    • 我对 NHibernate 不太熟悉,但我猜它的发生是因为它的命令设置。他们会开两次火似乎真的很奇怪。
    猜你喜欢
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 2020-11-12
    • 2011-02-14
    相关资源
    最近更新 更多