ここでは、もう1つ問題があります。複数のテーブルを1つのテーブルに入れよう
私はビジネスロジックを実行し、結果をテーブルに挿入する1つのWebサービスを持っています。私のアプリケーションの負荷が最小であれば、これはうまく動作します。
負荷が大きい場合、私のINSERT
SQLステートメントがタイムアウトしました。私は接続タイムアウトとコマンドタイムアウトを増やしました。しかし、問題は、同じWebメソッドを呼び出すスレッドが多すぎるということです。ちょうどいくつかのヒントを与えるために、重い負荷で私のOPEN SQL接続の数は500 +になります。参考までに、私はすべてのコマンドの後に私の接続を閉じました。
ここでこのことを最適化するためにここで何をすべきですか?
データテーブルにINSERT
データを格納し、このデータテーブルをAPPLICATION変数に格納する予定です。そして、2分後に、このデータテーブルのデータをデータベースに挿入します。
ここに私の人生を平滑にすることができる他のアイデアはありますか?私は管理スタジオで
SQL Serverの解析をINSERTクエリを実行し、時間をコンパイルするとき
は、より多くの詳細がある。ここEDIT
ありがとう: CPU時間= 0ミリ秒、経過時間= 0ms。
SQL Server解析およびコンパイル時間: CPU時間= 0ミリ秒、経過時間= 11ミリ秒。
テーブル 'IndexTable1'。スキャンカウント0、論理読取り2、物理読取り0、先読み読取り0、論理読取り0、論理読取り0、論理読取り0、読込み先読み0である。
表 'IndexTable2'。スキャンカウント0、論理読み取り2、物理読み取り0、先読み読み取り0、LOB論理読み取り0、LOB物理読み取り0、LOB先読み0。
テーブル 'fulltext_index_docidstatus_171147655'。スキャンカウント0、論理読取り11、物理読取り0、読取り先読み0、論理読取り0、論理読取り0、論理読取り0、読込み先読み0である。
表 'MAINTABLE'。走査カウント0、論理的、物理4を読み取り、28を読み取り、先読み0を読み取り、ロブ論理は、ロブの物理0を読み出し、0を読み取る先読みは0
(1行(s)は影響を受けた)
を読み出しロブ(1行が該当)
SQL Server実行時間: CPU時間= 0ミリ秒、経過時間= 69ミリ秒。
SQL Server解析およびコンパイル時間: CPU時間= 0ミリ秒、経過時間= 0ミリ秒。
SQL Server実行時間: CPU時間= 0ミリ秒、経過時間= 0ミリ秒。
接続プールのサイズはどれくらいですか? – Jordan
潜在的なボトルネックを判断するためには、アプリケーションのベンチマークを行う必要があります。まず、SQL Serverの "計画の説明"をよく理解し、インデックスを確認して、負荷のあるWindowsパフォーマンスモニタを調べて、CPU、RAM、およびディスクI/Oの使用率を確認してください。これらのリンクでも見てください:1)http://msdn.microsoft.com/en-us/library/ff647768.aspx 2)http://msdn.microsoft.com/en-us/library/ms178071.aspx – paulsm4
プロデューサ/コンシューマのパターンを見て、共有コンテキストからの挿入を処理しました。この方法で、接続数を制御してSqlBulkCopyを使用できます。 – Lloyd