- それは何ですか?
- MS SQL で接続プーリングを実装するにはどうすればよいですか?
- 次の場合のパフォーマンスへの影響は何ですか
- 多くのクエリを次々に実行しますか (つまり、ストアド プロシージャを呼び出す 30K 以上の反復でループを使用します)?
- 時間がかかる (10 分以上) いくつかのクエリを実行していますか?
- ベストプラクティスはありますか?
4 に答える
接続プーリングは、新しい接続の確立が遅いため、接続を再利用するメカニズムです。
MSSQL 接続文字列と System.Data.SqlClient を使用している場合は、既に使用しています。.Net では、ほとんどの場合、このようなものはフードの下にあります。
30k 反復のループは、sproc の外側の各ステップで何を行っているかによって、サーバー側カーソル (T-SQL カーソル ステートメントを参照) として適している場合があります。
長いクエリは問題ありませんが、Web ページからの呼び出しには注意してください。Asp.Net は長時間の待機に最適化されておらず、一部の接続が切断される可能性があります。
接続プーリングについてもう少し詳しく説明します... SqlClient で既に使用していますが、開いた新しい接続ごとに接続文字列が同一である場合に限ります。私の理解では、フレームワークは可能な場合は自動的に接続をプールしますが、接続文字列が接続ごとにわずかでも異なる場合、新しい接続はプールから取得されません-新しく作成されます(したがって、より高価になります) )。
XP/Vista で Performance Monitor アプリを使用して SQL 接続を監視すると、プーリングが使用されているかどうかをすぐに確認できます。パフォーマンス モニターの「.NET CLR データ」カテゴリの下を見てください。
私はキースに次ぐ。ストアド プロシージャを 30,000 回呼び出すと、接続プーリングよりもはるかに大きな問題が発生します。
あなたの質問は、このスレッドによって部分的に回答されました。検索すると、これが明らかになる..Googleが最初のヒットでこれに答えたであろう接続プーリングの定義..
これはベストプラクティスだけを残します。これは良い質問だったと思います:)
キースの回答に+1 。彼は頭に釘を打ちました。
FAQからの丁寧なリマインダー:
あなたは質問をする前にインターネットを検索し、あなたの質問に関する調査と情報で武装して私たちに来ました...そうですか?