2012-07-25 12 views
9

私はいくつかのソフトウェア開発者との会合に参加していましたが、アプリケーションコードでできるだけ早くデータベース接続を終了することをお勧めしましたか?誰かがアプリケーションで接続を開いたままにすることの害が何であるか教えてください。データベース接続を開いたままにするのは費用がかかりますか?

私はバスの座席のような、それのデータベース

+0

小規模な使用には問題ありませんが、一部のDBは接続ごとにライセンスされているため、接続を長時間開いたままにしておくとアクセスが奪われます。 –

+0

なぜ-1?私はそれがかなり役に立つ質問だと思った。 – TimeToCodeTheRoad

答えて

8

だと思うの単一のテーブルからデータを読んでいました。

接続を開くと、それらの座席がいっぱいになり、最終的にバスがいっぱいになり、乗客を受け入れることができなくなります(またはデータベース接続をさらに開く)。バスが能力を持っているために乗客を拒否しなければならないときはいつでも、その乗客は別のバスが来るのを待たなければならない。

接続が完了したら接続を閉じると、より多くの接続のための余裕ができます。つまり、データベースとのやりとりが必要なプログラムが多いため、接続を待たずに必要なことができます。解放する。あなたの接続を閉じないということは、接続しているすべての接続で何をすべきかをデータベースが把握する必要があることを意味します。

これは、接続プールを使用しているときに変更されます(下記のコメントを参照)。そのような状況では、あなたのプールがあなたのために開閉の接続を処理することを望みます。接続をプールしていない場合は、必要以上に開いたままにしておくとリソースが無駄になります。

+4

これは全然真実ではない。接続プーラーを使用するときは、接続を常時開いたままにしておくことをお勧めします。ほとんどのDBMS *接続では、かなりの作業が必要なためです。 –

+0

+1、いいアナロジー!私は@a_horse_with_no_nameにも同意します。というのも、接続が高価になることです。 – halfer

+0

ヒントをありがとう - 私は私の答えの一番下に段落を追加しました。それ以上の調整が必要な場合は、私に教えてください! – girasquid

関連する問題