我正在写一个生成网站地图的程序。为了避免重复,我使用MSSQL Server来存储找到的链接。在这个过程中,它可能会读写数百万个链接,并且它们之间的读写过程可能会有很小的差距(我的意思是每次访问数据库之间的时间非常短)。
我想知道我是否可以在程序启动时打开连接,并在结束时关闭它。请考虑创建一些网站地图可能需要几天的时间才能完成。或者每次我想要访问数据库时打开和关闭连接是明智的吗?
顺便说一下,我在本地使用sql server。
发布于 2013-05-07 18:16:41
您的问题的答案是Connection Pooling功能。
最好是在需要时打开连接,访问数据,然后立即关闭并释放连接
确实存在一种特定的工作模式
using(SqlConnection con = new SqlConnection(.....))
{
... do your work with the database here ....
}using statement确保在开口处创建的对象被关闭并放置在闭合大括号中。,即使数据库代码中出现异常也是如此。
这并不意味着你不能尝试优化你的代码。例如,您可以将几个站点地图收集在一起,并在一次拍摄中编写它们,但通常最好遵循一个简单的工作模式,尽快完成工作,并为以后的优化而担心。
发布于 2013-05-07 18:16:51
您可以使用以下代码:
SqlConnection conn;
try
{
conn = new SqlConnection(_dbconnstr));
}
catch
{
//exceptions are bubbled
throw;
}
finally
{
//Dispose is always called
conn.Dispose();
}希望这能有所帮助!
发布于 2013-05-07 18:18:17
我通常在每次使用的时候打开和关闭连接。当周围有很多连接时,必须释放资源。如果你是唯一一个,你可以保留你的资源。注意设置超时连接。
祝你好运,伙计!
https://stackoverflow.com/questions/16416467
复制相似问题