sql profiler显示nhibernate运行查询两次?

时间:2009-02-23 10:48:22

标签: nhibernate profiling sqlprofiler

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

针对应用程序运行探查器似乎显示有点奇怪的东西,因为我们似乎是两次查询对象,一次作为直接查询并且一次包装在sp_executesql中。例如:


SELECT col1, col2 FROM TABLE
exec sp_executesql N'SELECT col1, col2 FROM TABLE'

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

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

如果上述内容与我想的一样糟糕,有没有办法关闭此行为?

由于

1 个答案:

答案 0 :(得分:4)

您的查询未运行两次。只是这两个事件被同一个声明解雇了。