当前位置:编程学习 > C#/ASP.NET >>

数据库访问层用static对性能影响大么?谢谢!

目前使用的传统的 界面--业务层--数据层.
每次增删改查操作都会 new 一个数据层的对象,比如 
DBLevel db = new DBLevel();
db.Insert();

在考虑要不要把数据层改成静态方法,代码改成 DBLevel.Insert();

网上搜索的信息,有的说每次new一个对象,在内存就创建一个对象,使用完后再回收资源.这样对性能不好.static在内存是一个对象,不用频繁创建.还有一种说法是,每次new一个对象,对性能影响不大.

请问大家在项目中都用哪种呢? --------------------编程问答-------------------- 用静态方法,或者采取单例模式,你这种方法是不可取 --------------------编程问答-------------------- DBLevel db = DBLevel.CreateInstance();
--------------------编程问答--------------------

http://topic.csdn.net/u/20100518/11/c2a9b129-e41d-47b8-868f-87dde444034c.html


--------------------编程问答-------------------- 影响不大 --------------------编程问答-------------------- 如果访问量小的情况下,当然是可以的,记得用using
方法释放.但从业务角度来看
静态的或者单列的是最好的. --------------------编程问答-------------------- http://blog.csdn.net/TangZhongxin/archive/2009/03/26/4028126.aspx

我觉得可以用单例吧~ --------------------编程问答-------------------- 就整个应用程序的生命周期而言,仅仅是多new一个对象,影响不大

在实际应用中,数据访问层的对象还可能是通过反射动态生成的,仅考虑性能,还不如直接new对象

如果真的要考虑应用程序的性能问题,需要做一定的检测,在性能瓶颈处优化更好 --------------------编程问答-------------------- 静态吧 --------------------编程问答-------------------- --------------------编程问答-------------------- 数据层 用什么单例啊, 类似 操作sql操作类 用静态的,其它 每个对象的数据层 用 new --------------------编程问答--------------------  自己做的几个小项目,都基本没用到静态方法,对象创建和生命周期管理都交给IOC容器了 --------------------编程问答-------------------- 用静态方法,或者采取单例模式 --------------------编程问答--------------------
引用 3 楼 porschev 的回复:
http://topic.csdn.net/u/20100518/11/c2a9b129-e41d-47b8-868f-87dde444034c.html

其实这个问题我一直也不是很明白。
通常我都只有辅助方法是静态的。


刚看了一下链接的这个贴子,觉得35楼讲的挺好的。
引:单纯从效率上来考虑两者直接没有本质的差异,只有语义上和使用上的差异。

--------------------编程问答--------------------
引用 7 楼 amandag 的回复:
就整个应用程序的生命周期而言,仅仅是多new一个对象,影响不大

在实际应用中,数据访问层的对象还可能是通过反射动态生成的,仅考虑性能,还不如直接new对象

如果真的要考虑应用程序的性能问题,需要做一定的检测,在性能瓶颈处优化更好


+1 --------------------编程问答-------------------- 用静态吧,记得using下,这样就OK啦... --------------------编程问答-------------------- 我顶static --------------------编程问答-------------------- --------------------编程问答-------------------- 如果我没记错的话,如果使用单例模式,数据库只有一个连接,数据库是存在池的。

如果数据访问类存在多个用户的connection 1、会占用服务器资源,内存,2、可能不会自动使用ado.net的池。

db d=new db();
多个用户访问,无疑会存在多个连接的概念;

具体分配了多大的内存,需要看 db类当中存在了几个非静态的属性和变量 --------------------编程问答-------------------- New一个对象是正常的,特别是并发的时候。
有空可以研空下CYQ.Data 数据框架的源码。 --------------------编程问答-------------------- 要分情况的,要是你经常用到方法和属性的话,那么static的话 就比较效率。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,