これは簡単な質問のようですが、「close()」関数を呼び出さないことのデメリットが気になります。
6 に答える
遅かれ早かれ、「最大接続制限に達しました」というエラーが発生します。それを大きなデメリットと呼んでいます。
接続プールを使い果たすことは別として(これまでのほとんどの回答がそうであったように)、データをロックする危険があります。
テーブルの読み取りまたは書き込みを行っている場合、一部のロックセマンティクスにより、特定の行が他の接続にロックされます。これは、接続で開いているトランザクションがある場合に特に当てはまります。
その後、読み取りと書き込みが失敗する可能性があり、アプリケーションはあらゆる場所で例外をスローします。
つまり、常に接続を閉じます。
接続プールがいっぱいになり、新しい接続があれば、プールからの新しい接続を待ってタイムアウトになります。
SQL Server へのすべての接続には、メモリの割り当てが必要です。
したがって、開いている接続が多いほど、使用および保持されるメモリが多くなり、より有効に活用できる可能性があります。
SQL Server の接続で使用されるメモリの量を知りたい場合は、次のリファレンスを参照してください。
データベースサーバーへの接続が開いています。同じサーバーに数百のプログラムがヒットしているとします...
あなたもそれを処分する必要があります
簡単な答えは、閉じるのが早ければ早いほど、接続が接続プールによって再利用されるのが早くなるということです。