Oraceデータベースに接続するアプリケーションでは、常に新しい接続を作成して開き、OracleCommandsを実行して、最後に閉じます。最近、静的接続を実装する方が良いと思いました。どこからでもアクセスできる静的接続があるとします。データベースに接続する必要があるたびに、静的接続の状態を確認し、まだ開いていない場合は開いて、後で閉じることができます。これは有益だと思いますか、それとももっと不利な点がありますか?
2 に答える
正確に記述しておらず、通常は使用されているため、ここではODBCを使用していると想定しています...
いいえ、毎回新しい接続を使用する必要があります。これは、Microsoftが推奨する標準的な方法です。ODBCなどを使用している場合、Windowsはこれらの接続を管理し、再利用のためにキャッシュして、存続期間の管理を容易にします。
静的接続を使用する場合は、それを早期に破棄するか、知らないうちに閉じてしまう可能性があります。一般的に、それはもう少し厄介で時期尚早の最適化です。
高性能アプリケーションをデプロイするには、接続プールを頻繁に使用する必要があります。ただし、ODBC用の.NET Frameworkデータプロバイダーを使用する場合、プロバイダーがこれを自動的に管理するため、接続プールを有効にする必要はありません。
詳細については、 OdbcConnectionを参照してください。
一般に、いいえ、単一の接続を使用するべきではありません。すべての.NET ADO.NETプロバイダーは接続プールをサポートしており、通常のパターンでは、必要に応じて接続を開閉します(接続を確保するためにusing
またはtry/finally
ブロックで)例外が発生した場合は閉じられます)。
シングルスレッドのクライアントアプリケーションでは、共有静的接続の使用を回避できますが、測定可能なパフォーマンス上の利点が得られる可能性は低いため、実行しないでください。
他のアプリケーションでは、スレッドセーフではないため、共有静的接続を使用しないでください。