首页 新闻 会员 周边

使用EF,一定时间内频繁访问数据库,一直使用一个连接与每次访问创建连接的性能损耗

0
悬赏园豆:40 [待解决问题]

如题:

使用EF,一定时间内频繁访问数据库,一直使用一个连接与每次访问创建连接的性能损耗。

比如是十分钟内,这样频繁的创建与销毁连接所造成的损耗是否会严重影响到性能?

向往天空的鱼的主页 向往天空的鱼 | 初学一级 | 园豆:162
提问于:2013-11-01 17:05
< >
分享
所有回答(9)
0

是的.

Launcher | 园豆:45045 (高人七级) | 2013-11-01 17:13
0

 使用数据库连接池~

waiter | 园豆:1000 (小虾三级) | 2013-11-01 17:16
0

如果只是读取 考虑使用缓存

Yu | 园豆:12980 (专家六级) | 2013-11-01 17:19
0

我比较好奇如何使 多次访问只用同一个连接,比如从页面请求数据后,再把数据更新到DB时,应该使用的是一个新的连接了,

不知道一直使用一个连接在什么情况下会出现,如果可以,肯定要比创建次连接性能要高很多的

Zery | 园豆:6151 (大侠五级) | 2013-11-01 17:26

这里都是说的访问数据库的连接,跟前台没关系。

支持(0) 反对(0) 向往天空的鱼 | 园豆:162 (初学一级) | 2013-11-08 08:46
1

支持用完即关闭。

幻天芒 | 园豆:37175 (高人七级) | 2013-11-01 20:28
1

现在的http1.1就是保接连接的,保持连接还是有效率的。比如一个浏览网页,都不会只打开一个网页。数据库的连接池也是持有一个活着的连接,不断地分配给用户。

angelshelter | 园豆:9887 (大侠五级) | 2013-11-01 20:44
1

创建一个对象并不影响性能,但创建一个连接是比较费事的事情,但连接是连接池管理的,所以频繁创建无性能问题

56180825 | 园豆:1756 (小虾三级) | 2013-11-01 21:42
1

1、EF只是在ADO.Net之上的ORM实体框架,所以说连接池还是存在的,在ADO.Net的连接池是默认开启的,你自己可以测试一把!循环几千个连接测试,就知道,在对自己不清楚的存在,用代码来验证自己看到的事实,不是挺好的吗?

2、对于连接池,msdn有详细的介绍,具体地址:http://msdn.microsoft.com/zh-cn/library/8xx3tyca(v=vs.90).aspx

秋壶冰月 | 园豆:5903 (大侠五级) | 2013-11-02 01:55
2

不会,因为默认连接池是开的,所以当Open连接时,只是从连接池取一个,Close的时候又放回连接池,不存在物理连接的Open和Close,所以用的时候才Open,用完立即Close是最有效率的(特别是大并发的情况下,如果你Open了很长时间不Close,可能导致连接池没有连接可用,这样其他人连接的时候就会失败了)。而EF的操作都是用的时候才Open,用完立即Close的(你不需要自己声明Open和Close的代码)。

ocean | 园豆:824 (小虾三级) | 2013-11-07 22:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册