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

SQLServer診断を実行するための4つのヒント

    高性能で高可用性のデータベースはすべてのSQLServerDBAの目標ですが、実際には、データベースのパフォーマンスが常に最適であるとは限りません。応答時間の遅延、タイムアウト、CPUの停止は、私たちの最善の策です。これにより、SQL Server診断を戦略的に構成することが、効率的で適切に機能するシステムを維持するための重要なステップになります。

    SQL Server診断は、メモリ使用量、クエリの速度と効率、およびCPU使用率に関連するパフォーマンスの問題を明らかにします。これにより、パフォーマンスへの影響を最小限に抑えながら、問題をすばやく特定して修正できます。パフォーマンスへの影響をさらに最小限に抑えるために、診断データを経時的に追跡することを含むパフォーマンス監視戦略を作成して、特定が困難な問題を発見し、将来のパフォーマンス問題が発生する前に予測することができます。

    SQL Server診断から最も価値のある情報を取得するには、最初にデータから何を学びたいかを特定して、最も関連性の高いパフォーマンスメトリックを監視することが重要です。始めるのに役立つ4つのヒントを次に示します。

    診断目標:オンプレミス、仮想、およびクラウド環境のデータベースパフォーマンスを監視する

    データベースがオンプレミス、クラウド、またはハイブリッド環境のいずれに格納されている場合でも、これら5つの領域でデータベースのパフォーマンスを監視すると、最も一般的なパフォーマンスの問題のいくつかが警告されます。

    • 可用性:高可用性を維持することは、DBAの最優先事項の1つです。フェールオーバークラスターのログデータと現在のサーバーステータスを追跡することは、問題を早期に検出して修正するための鍵です。
    • TempDBの使用:使用するTempDBの量と使用方法に注意してください。また、TempDBベースラインを作成し、変更の前後にパフォーマンスデータを取得することをお勧めします。
    • I / O:SQL Serverの診断により、ブロッキングやその他のパフォーマンスの問題を引き起こす可能性のあるスタックしたI/O操作が明らかになります。
    • CPU使用率:CPU使用率が高い場合、いくつかの原因が考えられます。 SQL Server診断を使用して、根本原因を特定します。このチェックリストはあなたを正しい方向に向けることができます。
    • メモリ使用量:メモリ使用量を最適化していない場合、ある時点でパフォーマンスの問題が発生します。診断を実行して、メモリのシェアを超えて使用しているプロセスを特定し、必要に応じて最適化または書き換えます。

    診断目標:ブロックとデッドロックの原因を見つける

    ブロックとデッドロックはパフォーマンスを低下させる主要な要素であるため、ブロックの原因を診断し、問題を迅速に解決することは、高いパフォーマンスを維持するために不可欠です。ブロックとデッドロックのいくつかの一般的な原因は、次の3つの方法で根絶できます。

    • クエリとクエリプランの調査:長いクエリと非効率的なクエリプランは、ブロックとデッドロックの原因になります。 Diagnosticsは、複数の短いトランザクションに分割できるクエリと、古い統計の結果として最適化されていないクエリプランを特定できます。
    • ワークロードの分析:ワークロードが増加すると、同じリソースを争うプロセスが増えるため、ブロックが発生する可能性があります。診断により、ブロックまたはデッドロックの原因となっているユーザー、データベース、ホスト、またはSQL Serverステートメントを特定できるため、必要に応じてワークロードを再分散できます。
    • インデックスの確認:適切なインデックスを作成すると、全表スキャンの必要がなくなるため、ブロックを防ぐことができます。 SQL Serverがスキャンではなくシークできるようにすることで、インデックス作成により、ロックされていないリソースにアクセスできるようになります。

    診断目標:誤ったアラートに対処する

    誤ったアラートは単に迷惑なだけではありません。それらは、アラームの疲労を介して検出されないパフォーマンスの問題の原因となります。アラーム疲労は、頻繁な誤ったアラームによってDBAがアラートを無視し、重大な障害が発生したという通知を見逃す可能性がある場合に発生します。

    誤ったアラートを停止する最善の方法は、繰り返し発生する誤ったアラートの原因を診断し、重要ではないアラートを削除するか、アラートをトリガーする条件を厳密に指定するしきい値を設定することです。

    診断目標:SQLクエリの最適化

    クエリに対して定期的なSQLServer診断を実行すると、潜在的なパフォーマンスの問題のホストを削減または排除するのに役立ちます。 SQLServerの診断に基づいてクエリを改善する2つの方法は次のとおりです。

    • クエリの調整:SQL Serverのパフォーマンス監視ツールで、レポートの生成に時間がかかっている、最近I / O待機が大幅に増加している、または特定のジョブの実行に3倍の時間がかかっていることが示された場合彼らは1年前に行ったが、診断はクエリの調整が適切であることを示している可能性がある。クエリチューニングは、クエリを分析し、必要に応じて最大レベルの効率で実行されるまでクエリを書き換えることにより、パフォーマンスを向上させます。
    • 統計の更新:前述のように、古い統計は、非効率的なクエリプランをトリガーすることでパフォーマンスの問題を引き起こします。可能な場合は自動更新をスケジュールします。自動化が不可能な場合は、定期的なメンテナンスチェックリストに手動の更新を追加して、統計が最新の状態に保たれるようにします。

    SQL Server診断は、DBAのツールボックスに不可欠なツールです。診断が信頼性の高い高可用性SQLServerデータベース環境の維持にどのように貢献するかを理解すると、ユーザーへの影響を最小限に抑えながら、パフォーマンスの問題をすばやく見つけて修正するのに役立ちます。


    1. SQL Server 2008のDateTimeOffsetをDateTimeに変換するにはどうすればよいですか?

    2. Oracle Data Mining(ODM)–インストールとセットアップ

    3. SQLServerのメッセージ512「サブクエリが複数の値を返しました」を修正

    4. Oracleですべてのテーブルを一覧表示する方法