关闭与DB的连接

DRa*_*lav -2 c# asp.net

我有一个关于在C#中关闭连接的问题.公司有一个应用程序,数据自动从应用程序流向数据库.我想创建自己的ASP + C#应用程序,它将使用select from data(从公司应用程序填充的DB表)作为独立报告的来源.我的问题:关闭我的应用程序中的连接是否会影响第二个(公司,非常重要的应用程序?) - 由于密切连接,记录将在db中丢失?还是其他任何问题?

Pav*_*dko 5

不,如果您正确关闭它,一切都会安全.我建议你using总是使用建筑.它将自动转换为try-catch-finally和close资源.


410*_*one 5

这完全取决于你的用例,如果你打开并打开数百甚至数百甚至数千甚至数千个空连接,SQL Server将慢慢开始出现性能下降.

当你问老板什么的时候想想它,你说,"老板,我需要问你一个问题." 但是你每秒提醒他数十万次,"我需要问你一个问题." 他试图做的任何其他事情都会慢慢开始失去表现,因为他必须处理你将不得不向他提问的事实.与Sql Server类似.请注意,此时您还没有真正问过您的问题.

如果您的DBMS是Microsoft SQL Server,请参阅此文章:https://msdn.microsoft.com/en-us/library/ms187030.aspx

SQL Server最多允许32,767个用户连接.

如果打开到服务器的32k连接,可能会发生两件事:

  1. 你的DBA会来找你并说"wtf mate?" 当你接近时.一个可能的争论将随之而来,在这种情况下,你和DBA可能会最终大喊大叫并创建一个场景.
  2. 您的DBMS将达到最大连接限制,另一个将全部废弃.

并不是说任何这种情况都会发生,这需要你打开32,767 并发连接,但它只是进一步证明你应该根据需要打开/关闭.此外,如果您的应用程序使用连接池并打开n连接,并且池限制(与SQL Server分开 - 请注意)n,您只是停止了应用程序打开更多连接.

一般来说,您应该尽可能打开您的连接,并尽早关闭它们.