0
我试图加快一些Web服务调用,并怀疑打开很多NHibernate连接是问题。我知道打开一个到SQL服务器的新连接是非常耗时和昂贵的。但我认为NHibernate会保留一个连接(因此只需要打开一次),即使我在很多地方打开了一个nhibernate会话。NHibernate SQL服务器连接池?
所以这里有几个不同的部分来这样一个问题:
- 如果我创建一个会话并处理它,然后重新创建它,它需要同时围绕加载第二次,或者是sql服务器连接仍然在后台使用?像这样:
using (var session = new SessionFactory.OpenSession()) {... }; using (var session2 = new SessionFactory.OpenSession()) {.. };
- 如果我创建一个使用语句中的会话,然后创建statment内另一个(不设置它)将它不需要旋转起来完全是另外一个SQL Server连接在后台?像这样:
using (var session = new SessionFactory.OpenSession()) { using (var session2 = new SessionFactory.OpenSession()) {.. }; };
- 最后,是在SQL Server连接跨Web服务调用保存?即,如果我在Web服务请求调用#1上打开一个会话,Web服务请求调用#2是否会更快,因为隐藏的连接位于后台的某个位置,它将拾取并使用它?
我知道,在大多数情况下,使用一个会话可能是最好的,但是一个非常大的程序写了很多新的会话打开,我试图找出是否真的可以节省很多表现重写这个或没有。
谢谢!