私は約60列のテーブルにデータを格納するために使用しているストアドプロシージャを持っています。私はこのように1000個のexec文をgenereatedていますストアドプロシージャを1000回実行する方法
exec PopulateCVCSTAdvancement 174, 213, 1, 0, 7365
exec PopulateCVCSTAdvancement 174, 214, 1, 0, 7365
exec PopulateCVCSTAdvancement 175, 213, 0, 0, 7365
たびに、ストアドプロシージャが1〜3000記録(通常は約2,000の記録)から、任意の場所に挿入されます。 「サーバー」は、サーバーOS上で使用可能な4ギガバイトのメモリを搭載したデスクトップハードウェアを実行しています。私が持っている問題は、最初の10〜15回の実行のたびに平均1〜2秒後、次の10〜15は決して終わらないように見えるということです。私はこれを正しくしていますか?私はこれをどのようにするべきですか?
ありがとうございます! トップ10ウェイター:
LAZYWRITER_SLEEP
SQLTRACE_INCREMENTAL_FLUSH_SLEEP
REQUEST_FOR_DEADLOCK_SEARCH
XE_TIMER_EVENT
FT_IFTS_SCHEDULER_IDLE_WAIT
CHECKPOINT_QUEUE
LOGMGR_QUEUE
SLEEP_TASK
BROKER_TO_FLUSH
BROKER_TASK_STOP
ボトルネックが何であるかを調べる必要があります。 waitstats DMVは何を言っていますか? –
このテーブルには400以上の行があります。私が投稿すべき具体的なものは何ですか? –
その数字は累積的なので、一時的なテーブルにスナップショットを作成し、長い待ち時間を生成するアクションを実行し、次に2つを比較してどのWaitタイプが最も増加したかを確認します。 (または、DBV SQLPERF( "sys.dm_os_wait_stats"、CLEAR);でモニタリングツールを使用していない場合は、DMVの数値を0にリセットしてください) –