创建用于ASP.NET / Web服务的数据访问层时,这被认为是更好的做法:
1)在每个从数据库中检索数据的方法中打开和关闭连接;
2)建立一个连接类'它通过在构造函数中打开连接,然后在析构函数中关闭连接来处理连接到数据库以及使用连接类的其他单独类。
(我尝试输入伪代码作为示例,但是stackexchange不会接受它。抱歉没有例子。)
我担心第一种方法会随着时间的推移打开一百万个不必要的数据库连接。或者ASP.NET只是缓存连接而我不必担心它?
第二种方法是否存在缺点或危险,我想这会使数据库的连接时间延长一点?
提前致谢。
答案 0 :(得分:2)
拥有全局连接类的问题是多个Web处理程序将同时调用它。有时,您可以拥有具有生命周期和可见范围的数据库对象到该连接。 (例如,临时表)。如果在同一连接上运行多个同时查询,则这些查询可能会无意中相互干扰。
您想要的是连接的池。这里有许多连接保持打开状态,但是当一个函数访问一个连接时,它只能使用它。
如果您使用的是SQL Server,则免费为您提供: