日期:2014-05-20  浏览次数:20659 次

多数据库连接问题--缓存???
实际应用中每个用户有一套数据库连接(分别连接几个不同的数据库--不同类型的数据库)。
如果每次等用户连接时才去建立可能效率上不太好保证。
如果提前建立好所有连接,如何来建立和管理最为合理?

------解决方案--------------------
连接池`~
------解决方案--------------------
何以见得?
首先占用了资源
第二许多用户开了n多线程 你以为线程是无限的么?
第三主流数据库都建有线程池,总比你建立的线程池管理有效率吧
第四你多虑了

楼下补充
------解决方案--------------------
ADO .Net 自己会维护连接池的
你只需要保证每次open的Connection都被Close掉了就行.
------解决方案--------------------
楼上正解,楼主可以在MSDN中查看一下pooling,好像是这个词,可以看到》NET自动维护连接池的说明,范围默认为0-100
------解决方案--------------------
<connectionStrings>
<add name= "ConnStr " connectionString= "server=(local);uid=sa;pwd=***;database=***; Max Pool Size=100; Min Pool Size=8 " providerName= "System.Data.SqlClient " />
</connectionStrings>
使用 链接池...
------解决方案--------------------
还有 这个 东西 不用你去 管理
IIS6自带的功能
它会很好的帮你管理
------解决方案--------------------
“如果每次等用户连接时才去建立可能效率上不太好保证。”,
这个不用你操心,如ls所说,ADO .Net 自己会维护连接池的,即使你关闭,它也会保持一段连接时间,你下次申请连接,如果原来的连接还存在连接池里,它直接拿过来用。

------解决方案--------------------
第一次连接会慢

后面的Ado.net会自动建立连接池,不会慢的
------解决方案--------------------
lz:与你采用什么数据库没有关系,连接不同数据库,主要反映再不同的连接字符串上,连接关系一旦建立,Ado.net就会记录下来,你无需担心。。。
------解决方案--------------------
连接需要显式的关闭...必须所有连接在用完的时候都要调用close...

不然会出现跟我同样的问题...

连接池没响应...连接都被占用了...无论连接池多大(好象最大512吧)...