SQL Serverはtempdbというデータベースで動作し、多くのタスクを処理します。結合や集計などのクエリ操作がそこで行われます。オンラインインデックスの再構築、並べ替え、集計関数、トリガーもtempdbで実行されます。
別のtempdbデータファイルをいつ追加する必要があるかをどのように測定できますか?また、tempdbデータファイルはいくつ必要ですか。
ここで作成するtempDBファイルの数をPaul Randalが説明します tempdbにデータファイルを正しく追加する
サーバーの論理コアが8未満の場合(たとえば、1つのCPUサーバーに4つの物理コアがあり、ハイパースレッディングが有効になっている場合、8つの論理コア)、tempdbデータファイル=#論理コア、同じサイズ
サーバーに8つ以上の論理コアがある場合は、8つのtempdbデータファイルから始め、競合が緩和されるまで、同じサイズの4つのセットを一度に追加します。
開始する前に、既存のすべてのtempDBファイルを変更して、同じサイズおよび同じAUTOGROW設定にすることが重要です。次に、既存のファイルと同じサイズと自動拡張設定ですべての新しいTempDBファイルを作成します。
現在問題がありますか?待機統計を表示し、上位の待機を特定します。PAGELATCH_UPまたはPAGELATCH_EXがそこにある場合は、さらに調査する必要があります。 Glen Berryは、ここに含まれるそのための良いクエリを持っています 2016年9月のSQL Server診断情報クエリ
SQL Serverの速度が低下していることに気付いたら、sys.dm_exec_requests待機タイプと待機リソース情報を返し、pagelatch_ *待機タイプに注意してください。次に、DBCC PAGEを介して待機リソースを渡し、ページラッチが発生しているデータベースと内部ページを特定できます。ここでSQLSoldierによる非常に便利なクエリを使用することもできます TempDB競合の停止(パート2) 問題が発生している内部データベースページがあるかどうか、およびtempDBファイルを追加することが答えであるかどうかをより適切に特定できます。内部のGAM、SGAM、またはPFSページにページラッチが表示されていると想定し、PAGELATCH_競合が減少するまで上記のアドバイスに基づいてファイルを追加し続けます。
別の方法は、 sp_WhoIsActive および 出力をテーブルに記録する を使用することです。特にwait_info
。このようにして、ベースラインを維持し、SQLサーバーのtempdb競合の履歴を長期にわたって保持して、tempdbファイルを追加することで競合が緩和されたかどうかを確認します。
別のtempdbデータファイルをいつ追加すべきかをどのように測定できますか?
3つの「特別な」ページタイプ GAM(グローバルアロケーションマップ)、SGAM(共有グローバルアロケーションマップ)、およびPFS(ページフリースペース) が原因で発生する可能性のあるラッチ競合が発生した場合。
Wait_typeがPAGELATCH_UPまたはPAGELATCH_EXであり、resource_descriptionが2:1:1である多くの出力行がある場合、それはPFSページ(データベースID 2 – tempdb、ファイルID 1、ページID 1)です。 2:1:3を参照してください。それがSGAMと呼ばれる別の割り当てページです。
。
また、tempdbデータファイルはいくつ必要ですか。
KB2154845 は公式のガイダンスを提供しますが、 以下はPaul Randalからです
使用している論理プロセッサコアの数を計算します(たとえば、2つのCPU、それぞれに4つの物理コア、および有効なハイパースレッディング= 2(CPU)x 4(コア)x 2(ハイパースレッディング)= 16の論理コア。論理コアが8個の場合、論理コアと同じ数のデータファイルを作成します。論理コアが8個を超える場合は、8個のデータファイルを作成し、それでもPFSの競合が発生する場合は4個のチャンクに追加します。すべてのtempdbデータファイルを確認しますサイズも同じです。
だから、以下は重要事項です:
参照: