【发布时间】:2011-08-16 01:13:11
【问题描述】:
我正在通过一个 com 端口连续接收数据并进行一些解码。解码完成后,我必须将结果存储在 sql 数据库中。我在想,因为解码已经完成(在一个while循环中总是运行)每秒几十次,如果明智地打开和关闭与sql server的连接,数据需要每秒存储到数据库中几十次每个 while 循环或只是将其保持打开状态并继续将数据写入数据库。 首先这可能吗?其次,如果连接保持打开状态,第三方应用程序或计算机是否可以在我的程序存储数据的同时访问数据库并读取数据?
【问题讨论】:
-
还有一件事。我可以每秒打开和关闭几次连接,或者有超时或类似的东西阻止经常使用吗?
-
程序将 24/7 运行。这意味着永远不要关闭连接
-
就我个人而言,我打开/关闭以避免混淆范围/生命周期中的传输——即使它可能不需要。如果存在感知性能问题,则进行基准测试(正如其他人指出的那样,池化基本上否定了这一点)。但是,请务必管理事务。即使数据库保持打开状态,请记住根据需要commit。否则数据可能永远不会被提交或锁可能永远不会被释放:)
标签: c# sql connection