>>可是频繁的打开和关闭必然导致性能的下降don't just guess, do some profiling or monitoring>>需要200次打开和关闭not true, if you are using connection pooling, which should be the default>>这个访问的操作无法重用if the data is mostly readonly, consider to do one SELECT and cache the information on the server
解决方案 »
- Microsoft Visual Studio 2008中的母版问题
- ASPxTreeList点击+或排序后无显示
- 跪求 高手帮忙看看我的程序.net
- |M|关于VS2005的使用方法:VS2005对数据集都可以通过控件和点击鼠标来完全,但我用的时候总是不成功;我想问一下大家是用控件还是用代码
- 三层结构的问题... ...
- 动态加载ifream问题,请兄弟们帮们看一下。
- 菜鸟问题:怎样判断同一个组里的哪个radioButton被选中?
- 高分求助:这个聊天程序的界面怎么设计 ? 急急...
- 求救!问题:Access denied
- 问个超级晕的问题:ASP.NET(VB)中如何做一段程序+一个TXT做a=a+1这种超级简单的计数器?
- 代码产生以下异常InvalidOperationException: 集合已修改;枚举操作可能不会执行
- 网上哪里有ASP较深一点的教程?
现在大部分的web应用都有分层的概念。数据库访问都被包装到一个或多个访问类(component)中去了。可是connection对象由谁来管理? 我查看了asp.net上commerce starter的原码,发现:每个方法都自行打开和关闭数据库连接。这样做非常模块化,但是open和close的操作会很多。
我想过是不是可以把数据访问模块在application变量中初始化,然后由所有有关page共享。这样只要引用一下就好了,数据连接只要打开一次。但是要处理好同步问题。
还有一种方式,是把数据访问服务化。也就是说从IIS运行就一直存在,也是可以打开一次,一起共享。如果用web service实现,代价是不是太大了,毕竟使用的业务逻辑和数据访问都在一台机器上,用XML转来转去的耗费资源。
有没有更好的方式实现业务层和数据访问层的交互,从而保证灵活,资源共享,减少开销。我读的文章还少,也许已经有很好的解决方案了。请大家指点。如果没有,大家一起讨论一下。
我感觉这是一个比较好的方案。比较折衷。如果让所有的data access component共享同一个连接,coupling太高。如果让每个方法自己管理连接,太多open和close。 把连接管理放在二者之间,也就是data access component层就比较好。这样也可以比较快地释放连接资源。大家的看法呢?
OLE DB .NET数据提供程序 (http://msdn.microsoft.com/library/en-us/dnbda/html/daag.asp)
用SQL Server .NET 数据提供程序池化 如果正在使用SQL Server .NET数据提供程序,那么就可使用该提供程序提供的链接池化支持特性。它是由提供程序在托管代码内内置实现的对事务敏感的高效机制。每个过程都将创建池,并且直到过程结束,池才被取消。 你可以透明地使用此种链接池,但应当清楚池是如何被管理的,并要知道可以用哪些选项来调整链接池。
This paper could be helpful