sql >> データベース >  >> RDS >> Sqlserver

ディスクI/Oのボトルネックのトラブルシューティング

    サーバーで過剰な数のI/Oアラートが発生していませんか?もしそうなら、サーバーのパフォーマンスの低下を心配する必要がありますか?根本的な問題を最もよく診断し、I / Oのボトルネックを解消する方法は?

    SpotlightCloudのI/Oストール時間アラームは、I/Oボトルネックの良い指標です。データベースファイルの操作ごとの平均待機時間がアラームしきい値を超えると発生します。アラームは、sys.dm_io_virtual_file_statsDMVからのデータを計算に利用します。過去15分間に5回収集した後に得られた平均値を使用するため、ときどき急上昇したときにアラートが表示されることはありません。アラームの説明には、データベース仮想ファイル名、データベース名、およびI/O操作ごとの平均待機時間が含まれます。

    SpotlightCloudのI/O関連の問題を診断するための4つの簡単な提案:

    1. I/O消費に何が寄与しているかを確認します。

    I / O消費は、ディスクサブシステムの遅延の兆候であり、メモリまたはCPUの負荷、クエリの記述が不十分、またはインデックスが適切に混在していないことが原因である可能性があります。アラーム時:

    まず、[アラーム]ページの[プロパティ]右側のパネルを利用して、スマートアラーム関連のデータを表示します。
    1.ファイル名、ファイルの平均I / O待機時間、アラームの継続時間など、アラームの詳細

    2.過去数時間にわたるトレンドチャートにグラフ化された収集データを分析します



    次に、診断ボタンを押して問題を診断します。これにより、ストレスのかかったファイルに焦点を当てたI / ObyFileダッシュボードが表示されます。このダッシュボードや他のダッシュボードを使用して、さらに診断することができます。

    1.ファイルごとのI/O – I/Oによって直接影響を受けるファイルを特定します
    2.ワークロードアナライザー-最も多くのI/Oを消費する上位のSQLステートメントとTSQLバッチ
    3.セッション–ディスクアクティビティがある時点でのセッション
    4.ヘルスチェック-不足しているインデックスがあるかどうかを確認します


    2. I/O操作を待機しているファイルを確認します。

    I / O by Fileダッシュボードは、I/O操作を待機しているファイルを識別します。次のI/O統計を調べます。
    1. I / O関連の列(I / Oレート、読み取り/書き込みレート、待機レート)をメモします。

    2. [論理ファイル]列のすぐ上にある青いドロップダウンリストを押して、/IOごとの平均待機時間でファイルを並べ替えます。

    3.右側のパネルに表示されているファイルで生成された過去1時間の読み取りおよび書き込みアクティビティを表示します。

    4.必要に応じて、時間枠を拡張して、これがファイルの正常な動作であるかどうかを確認します。

    5.時間の経過とともに同じ問題に悩まされている多数のファイルがあり、場所またはディスクを共有している場合は、それらの場所を調整し、ディスクまたは場所間のIO競合を比較して、ディスク遅延の問題を軽減することを検討してください。


    6. Tempdbデータベースファイルが重要な要素である場合は、TempDB使用状況ダッシュボードを使用して、データベースに対するアクティビティを表示します。

    a。 Tempdbデータベースファイルとその統計
    b。 tempdbを利用したセッション
    c。 tempdbで作成されたトップテーブルとインデックス



    3.大量の論理I/Oを実行している可能性のあるSQLステートメントを見つけます。

    ワークロードアナライザダッシュボードには、SQLを消費する上位のI/Oが表示されます。

    1.上部バナーのI/Oリソースをクリックし、ディメンションツリーからSQLステートメントノードを展開して、期間中にSQLを消費した上位25のI/Oを表示します。

    2. 1つのステートメントに注目し、右側の[SQLステートメントのプロパティ]パネルを展開して、SQLとクエリプランの詳細を表示します。

    3. [Open in SSMS]オプションを使用してSQLステートメントをSSMSにロードし、Tuning Packプラグインツールを使用して計画を分析するか、より最適なステートメントを書き直します。


    4.ディメンションツリーの「SQLステートメント」ノードに注目して、SQLステートメントを一覧表示します。 IO待機または論理読み取りでセッションをソートします。右側の[親と比較]パネルを使用して、単一のSQLのIO待機を、IOを使用しているインスタンスの残りのSQLと比較します。論理I/Oにより、不要な物理I/Oが発生する可能性があります。


    4.どのSQLServerセッションが大量のディスクアクティビティを生成しているかを確認します。

    セッションダッシュボードには、インスタンスで開いているセッションが表示されます。大量のディスクアクティビティを生成しているセッションを確認するには、I / O関連の統計を確認し、それらで並べ替えます。
    1. I / O関連の統計は、正しい方向を示します:合計I / O、論理読み取り、物理読み取り、および要求I / O

    2. [セッション]タブの右側のパネルには、基礎となるSQLとともに追加の統計情報が表示されます



    Tempdbパネルを使用して、Tempdbデータベースを利用するセッションを表示します。
    1. Tempdbダッシュボードを使用して、データベースを利用しているセッションとオブジェクトを識別します

    2. Tempdb Usageダッシュボードを使用して、一定期間のすべてのセッションを表示します


    Spotlight Cloudの診断機能を活用して、I/Oレイテンシーを管理してください。


    1. MySQLでOFFSETを指定してLIMITを使用すると、どの行が返されますか?

    2. 破損したTOASTテーブルの修正

    3. Where句でAliasを使用する方法は?

    4. T-SQLを使用してデータベースの互換性レベルを変更する方法