8

Oraceデータベースに接続するアプリケーションでは、常に新しい接続を作成して開き、OracleCommandsを実行して、最後に閉じます。最近、静的接続を実装する方が良いと思いました。どこからでもアクセスできる静的接続があるとします。データベースに接続する必要があるたびに、静的接続の状態を確認し、まだ開いていない場合は開いて、後で閉じることができます。これは有益だと思いますか、それとももっと不利な点がありますか?

4

2 に答える 2

7

正確に記述しておらず、通常は使用されているため、ここではODBCを使用していると想定しています...

いいえ、毎回新しい接続を使用する必要があります。これは、Microsoftが推奨する標準的な方法です。ODBCなどを使用している場合、Windowsはこれらの接続を管理し、再利用のためにキャッシュして、存続期間の管理を容易にします。

静的接続を使用する場合は、それを早期に破棄するか、知らないうちに閉じてしまう可能性があります。一般的に、それはもう少し厄介で時期尚早の最適化です。

高性能アプリケーションをデプロイするには、接続プールを頻繁に使用する必要があります。ただし、ODBC用の.NET Frameworkデータプロバイダーを使用する場合、プロバイダーがこれを自動的に管理するため、接続プールを有効にする必要はありません。

詳細については、 OdbcConnectionを参照してください。

于 2012-10-11T11:50:01.593 に答える
1

一般に、いいえ、単一の接続を使用するべきではありません。すべての.NET ADO.NETプロバイダーは接続プールをサポートしており、通常のパターンでは、必要に応じて接続を開閉します(接続を確保するためにusingまたはtry/finallyブロックで)例外が発生した場合は閉じられます)。

シングルスレッドのクライアントアプリケーションでは、共有静的接続の使用を回避できますが、測定可能なパフォーマンス上の利点が得られる可能性は低いため、実行しないでください。

他のアプリケーションでは、スレッドセーフではないため、共有静的接続を使用しないでください。

于 2012-10-11T12:31:50.743 に答える