web-dev-qa-db-ja.com

tempdbの待機時間を短縮するオプションは何ですか?

SQL Servers 2012 Enterprise Edの監視とチューニングを担当しました。 Windows Server 2008 R2 Standard Ed上のSP1(64ビット)。

それらはすべて仮想マシン内で実行されています。単一のRAID10またはRAID5の地域オフィスごとに1つのSQL Server。つまり、異なる物理ユニット(ハードドライブ)を使用してSQL Serverを構成することはできません。

tempdbシステムデータベースで読み取りと書き込みのレイテンシが上昇しているのがわかります。
tempdbデータベースのこの待ち時間を短縮するための私の選択肢は何ですか?

2つの基本的なオプションがあります。

  1. Tempdbデータベースに必要なワークロードを削減する
  2. より高速なハードドライブを入手する

#1については、欠落している他のデータベースのインデックスを探します。不足しているインデックスを修正すると、tempdbデータベースへの流出が減り、ワークロードが減少します。

サーバー上のアプリケーションが一時テーブルを頻繁に使用している場合は、ハードドライブを高速化するしかありません。

以上のことから、tempdbデータベースのPFSページに待ち時間の問題がある場合(待ち時間の問題がある特定のページIDを見つける必要があります)、修正は簡単で、tempdbデータベースファイルを追加します。

5
mrdenny

オプション3。

一時データベースの割り当て競合を減らします。複数のtempdbファイルを設定することをお勧めします。一般的な推奨事項は、8コア以上を実行するマシンでは8ファイルです。その後、それを減らすことができるまで、4ファイルずつ増やします。

症状:「SQL Serverに高い負荷がかかっているときに重大なブロッキングが発生します。動的管理ビュー[sys.dm_exec_requestまたはsys.dm_os_waiting_tasks]を調べると、これらの要求またはタスクがtempdbリソースを待機していることがわかります。待機タイプと待機リソースは、tempdbのページでLATCH待機をポイントします。これらのページは、2:1:1、2:1:3などの形式である可能性があります。

詳細 こちら

2