确定NHibernate瓶颈的最佳方法?

确定NHibernate瓶颈的最佳方法?,nhibernate,Nhibernate,这是关于我之前问过的一个问题。除了查看NHibernate在调用数据库时生成的SQL之外,找到NHibernate和DB之间瓶颈的最佳方法是什么?特别是,当直接针对数据库运行查询时,返回速度非常快,但在单元测试和网页上运行代码时,返回速度非常慢(超过3-4倍)。我相对确信这与我映射表和主键的方式有关。我如何进一步挖掘,以了解我的慢区发生在哪里?还有其他可用的工具吗?我知道这是一个非常广泛的问题,但我还没有必要探讨这些问题。任何帮助都将不胜感激。我使用JProbe分析我的代码。它可以显示在代码中任

这是关于我之前问过的一个问题。除了查看NHibernate在调用数据库时生成的SQL之外,找到NHibernate和DB之间瓶颈的最佳方法是什么?特别是,当直接针对数据库运行查询时,返回速度非常快,但在单元测试和网页上运行代码时,返回速度非常慢(超过3-4倍)。我相对确信这与我映射表和主键的方式有关。我如何进一步挖掘,以了解我的慢区发生在哪里?还有其他可用的工具吗?我知道这是一个非常广泛的问题,但我还没有必要探讨这些问题。任何帮助都将不胜感激。

我使用JProbe分析我的代码。它可以显示在代码中任何特定位置花费的时间量,以及瓶颈所在的位置。我确信还有其他可用的工具,其中一些可能更便宜。

AFAIK还没有单一的工具来分析NHibernate。这将随着时间的推移而改变。同时,您可以使用代码探查器(例如)、SQL Server探查器、NHibernate记录器和静态分析的组合,也就是说,如果您知道SELECT N+1问题,大多数情况下,您只需查看代码就可以发现它


编辑:现在可用

现在请使用Sql事件探查器。稍后您可以购买Ayende的Nhibernate Profiler。您还可以记录sql并进行检查。

JProbe是用于Java的,他的问题是关于.netGood的,他一直把它读为Hibernate并删除了N。然而,我相信有一个类似于.NET的JProbe的工具,如果没有,开发一个可能会赚些不错的钱。