3
  • それは何ですか?
  • MS SQL で接続プーリングを実装するにはどうすればよいですか?
  • 次の場合のパフォーマンスへの影響は何ですか
    • 多くのクエリを次々に実行しますか (つまり、ストアド プロシージャを呼び出す 30K 以上の反復でループを使用します)?
    • 時間がかかる (10 分以上) いくつかのクエリを実行していますか?
  • ベストプラクティスはありますか?
4

4 に答える 4

3

接続プーリングは、新しい接続の確立が遅いため、接続を再利用するメカニズムです。

MSSQL 接続文字列と System.Data.SqlClient を使用している場合は、既に使用しています。.Net では、ほとんどの場合、このようなものはフードの下にあります。

30k 反復のループは、sproc の外側の各ステップで何を行っているかによって、サーバー側カーソル (T-SQL カーソル ステートメントを参照) として適している場合があります。

長いクエリは問題ありませんが、Web ページからの呼び出しには注意してください。Asp.Net は長時間の待機に最適化されておらず、一部の接続が切断される可能性があります。

于 2008-08-12T20:53:40.690 に答える
2

接続プーリングについてもう少し詳しく説明します... SqlClient で既に使用していますが、開いた新しい接続ごとに接続文字列が同一である場合に限ります。私の理解では、フレームワークは可能な場合は自動的に接続をプールしますが、接続文字列が接続ごとにわずかでも異なる場合、新しい接続はプールから取得されません-新しく作成されます(したがって、より高価になります) )。

XP/Vista で Performance Monitor アプリを使用して SQL 接続を監視すると、プーリングが使用されているかどうかをすぐに確認できます。パフォーマンス モニターの「.NET CLR データ」カテゴリの下を見てください。

于 2008-08-12T21:07:35.233 に答える
0

私はキースに次ぐ。ストアド プロシージャを 30,000 回呼び出すと、接続プーリングよりもはるかに大きな問題が発生します。

于 2008-08-12T21:13:21.850 に答える
-3

あなたの質問は、このスレッドによって部分的に回答されました。検索すると、これが明らかになる..Googleが最初のヒットでこれに答えたであろう接続プーリングの定義..

これはベストプラクティスだけを残します。これは良い質問だったと思います:)

キースの回答に+1 。彼は頭に釘を打ちました。

FAQからの丁寧なリマインダー:

あなたは質問をする前にインターネットを検索し、あなたの質問に関する調査と情報で武装して私たちに来ました...そうですか?

于 2008-08-12T21:32:20.643 に答える