长时间打开sql连接

本文关键字:连接 sql 长时间 | 更新日期: 2023-09-27 18:12:21

我正在编写一个生成Sitemaps的程序。为了避免重复,我使用MSSQL服务器来存储找到的链接。在这个过程中,它可能读写数百万个链接,并且读写过程之间的间隔很小(我的意思是每次访问数据库之间的时间非常小)。

我想知道我是否可以在程序启动时打开连接并在结束时关闭它。请注意,创建一些站点地图可能需要几天时间才能完成。或者每次我想访问数据库时打开和关闭连接是明智的吗?

顺便说一下,我使用sql server本地

长时间打开sql连接

你的问题的答案是连接池功能。

最好在需要的时候打开连接,访问你的数据,立即关闭和处理连接

确实存在特定的工作模式

using(SqlConnection con = new SqlConnection(.....))
{
   ... do your work with the database here ....
}

using语句确保在开始处创建的对象关闭,并在结束大括号处处理。即使在数据库代码中出现异常

这并不意味着你不能优化你的代码。例如,您可以将几个站点地图收集在一起并一次编写它们,但通常最好遵循简单的工作模式,尽快完成工作,并担心以后的优化。

您可以使用以下代码:

SqlConnection conn;
try
{
    conn = new SqlConnection(_dbconnstr));
}
catch
{
    //exceptions are bubbled
    throw;
}
finally
{
    //Dispose is always called
    conn.Dispose();
}

希望这对你有帮助!

每次使用时我通常打开和关闭连接。当周围有很多连接时,必须释放资源。如果你是唯一一个,你可能会保留你的资源。注意设置超时连接。

祝你好运!

最好打开/关闭连接。断开连接没有任何好处。ADO。. NET连接池(默认开启)将负责关闭哪个连接以及何时关闭。

从MSDN

注意建议您始终关闭连接为了返回连接,您已经完成了对它的使用去游泳池。这可以使用Close或Dispose来完成Connection对象的方法。不显式的连接Closed可能不会被添加或返回到池中。例如,a这种联系已经超出了范围,但还没有明确关闭的连接池只会返回如果最大已达到池大小,连接仍然有效。

如果你知道这需要一段时间,那么写一个本地数据表,然后当你达到一个阈值时,把所有的记录写入数据库。

或者甚至将信息写入本地文件(您选择的格式),然后将该文件一次性写入数据库(或多次写入,如果您想每x条记录或y分钟做一次)