我一直在对我正在开发的应用程序进行一些性能分析。该应用程序是基于 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,但我无法想象这是正常行为。我是否误读了配置文件跟踪(在这种情况下我应该如何解释上述内容),或者有充分的理由吗?
如果上述情况和我想的一样糟糕,有没有办法关闭这种行为?
谢谢