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

これらのメトリックを使用してSQLServerのパフォーマンスを測定していますか?

    アプリケーションとシステムのパフォーマンスは、ユーザーが製品の価値と会社の能力をどのように認識するかに大きな役割を果たします。同じページが絶えずタイムアウトする場合、または重要なレポートにアクセスするのに永遠に時間がかかる場合、データベースシステムのパフォーマンスにより、組織の信頼性の問題が発生します。

    高可用性と信頼性の高いパフォーマンスは、顧客と内部システムユーザーを満足させるための鍵であり、収益に影響を与えることさえあります。これらの目標を念頭に置いて、包括的なSQLServerパフォーマンス監視戦略を実装する必要があります。

    SQLServerパフォーマンスモニタリングの利点

    パフォーマンス監視の最も一般的に宣伝されている利点は、トラブルシューティングと問題の解決が容易なことです。適切に構成されたSQLServer監視ツールは、サーバーとデータベースの問題をエンドユーザーに影響を与えたり、大規模で費用のかかる問題になる前にすばやく見つけて修正したりするための最も効率的な手段です。

    システムの正常性を維持することに加えて、SQL Serverのパフォーマンス監視を実装すると、インフラストラクチャのコストを抑えることができます。一例として、不要な保管費用があります。 SQL Serverのパフォーマンスが最適化されると、ファイルサイズの増加が継続的に監視されます。ファイルサイズが過度に大きくなるとアラートがトリガーされるため、ディスクスペースが使い果たされて追加のリソースが問題にスローされる前に、問題を解決できます。

    また、クラウドベースの監視ソリューションを選択した場合は、物理サーバーの収容と保守の費用に別れを告げることで、ROIをさらに高めることができます。

    これらのメトリックを追跡してSQLServerのパフォーマンスを向上させる

    SQL Serverのパフォーマンスの監視は、問題を修正してコストを節約するための優れた戦略であることはわかっていますが、適切な指標を追跡しない限り、SQLServerの監視ツールを最大限に活用することはできません。 SQL Serverから最適なパフォーマンスを得るには、監視する5つの領域と、それぞれから追跡する最も重要なメトリックを次に示します。

    1。バッファキャッシュ

    バッファキャッシュには、最近使用されたデータベースページのコピーが保存されます。 SQL Serverは最初にキャッシュを調べますが、探しているものが見つからない場合は、ディスクに移動します。ディスクからの読み取りが遅く、パフォーマンスに悪影響を与える可能性があります。

    キャッシュヒット率

    キャッシュヒット率は、SQLServerがキャッシュからページにアクセスする頻度を示します。高い値は、ページがディスクからではなくメモリからアクセスされたことを示します。キャッシュヒット率が常に低い場合は、システムメモリのボトルネックを確認してください。

    ページの平均余命

    ページの平均余命を監視すると、ページがディスクに移動する代わりにメモリにとどまる時間が表示されます。ページの平均寿命が長いほど、キャッシュヒット率は高くなります。

    チェックポイントページ/秒

    SQL Serverは、変更されたページをバッファーからディスクに定期的にフラッシュすることにより、バッファーキャッシュのスペースを解放するためのチェックポイントを設定します。フラッシュされるページの数は構成設定とサーバーの使用状況によって異なるため、比較のためのベースラインを設定することが重要です。フラッシュされるページの増加に気付いた場合は、I/Oの問題が発生している可能性があります。

    2。インデックス

    データベースインデックスは、レコード数の多いテーブルでの操作を高速化するのに役立ちます。インデックスは一部のデータベース機能を改善するための便利なツールですが、インデックスには固有の問題があり、すぐにキャッチしないとパフォーマンスが低下する可能性があります。

    フラグメンテーション

    レコードが追加および削除されると、インデックスの断片化が発生します。時間が経つにつれて、これらの変更は、あまりにも多くのページにあまりにも多くの空白を残し、新しいページを順番どおりに追加しないことによって、パフォーマンスの問題を引き起こします。これにより、スキャンが遅くなり、過剰なメモリを使用する可能性があります。

    インデックスの断片化を監視すると、断片化を修正してパフォーマンスを向上させるために、インデックスに対して再構築または再編成を実行する必要がある場合に通知されます。

    フィルファクターとページ分割

    フィルファクターの設定により、インデックスは各ページがどれだけいっぱいになるかを知ることができます。ページがいっぱいになると、ページ分割が発生します。ページが十分にいっぱいでない場合は、リソースを浪費しています。

    ページ分割を追跡すると、曲線因子の調整が必要な時期を特定するのに役立ちます。最高のパフォーマンスを得るには、システム全体の曲線因子値を設定しないでください。個々のインデックスを評価し、それぞれに適切なレベルで曲線因子を設定します。

    3。 T-SQL

    パフォーマンスを最適化するために、SQL ServerはSQLステートメントをバッチ処理してから、実行プランにコンパイルし、再利用のためにキャッシュします。 SQL Serverが実行プランを再利用できない場合、プランが再コンパイルされます。これにより、多くのCPUが使用され、パフォーマンスが低下します。したがって、SQLステートメントの再コンパイルの数をできるだけ少なくするのが最善です。

    SQLのコンパイルと再コンパイルの速度を監視すると、ストアドプロシージャやクエリパラメータなどの一部の領域を再構成する必要があるかどうかがわかります。

    4。ブロッキング

    SQL Serverのブロックは、複数のクライアントとプロセスが同時に同じリソースへのアクセスを要求することによって発生します。リソースがすでに使用されている場合、アクセスはロックされ、リソースは後続のリクエストに使用できません。これにより、リソースが解放されて再び使用可能になるまで、プロセスが保留になります。

    ロック待機

    通常、リクエストはロックを待つ必要がないため、この指標はほぼゼロのままである必要があります。ロック待機の増加はロード時間の問題を示しているため、問題の根本的な原因を突き止める必要があります。

    ブロックされたプロセス

    ブロックされたプロセスを追跡することは、ブロックされたプロセスを通知する多くの電子メールを回避するための良い方法です。 SQL Server Profilerを使用して、ブロックされたプロセスに関するデータをキャプチャし、レポートを定期的に確認します。

    5。リソース使用量

    リソース使用量のメトリックを追跡することは、パフォーマンスの問題を特定するだけでなく、容量計画を支援するための効果的な方法です。

    行数

    行数を監視することで、特定のテーブルに関連付けられているデータの量を、時間の経過とともに直接、簡単に追跡できるようになります。行数の予期しない増減により、原因の調査が必要になります。

    データベースファイルI/O

    データベースファイルに対してI/Oメトリックを測定することにより、特定のデータファイルによって書き込まれているデータと読み取られているデータの量を追跡できます。潜在的な問題を観察した場合、このメトリックは根本的な原因を絞り込むのに役立ちます。データベースファイルI/Oの追跡は、将来のデータスループットを予測し、それに応じてリソースを調整するのに役立つため、インフラストラクチャの計画にも役立ちます。

    トランザクションログのバックアップサイズ

    過負荷が原因でサーバーがクラッシュした場合、SQL Serverは仮想ログファイル(VLF)に格納されているデータベースログレコードを使用して回復します。トランザクションログにあるVLFの数を監視することが重要です。これは、VLFが多すぎると、停止後に復元するときにリカバリプロセスが遅くなる可能性があるためです。

    SQL Serverのパフォーマンス監視は、組織の品質管理戦略の重要なコンポーネントです。いくつかの主要なパフォーマンスメトリックを追跡することで、ユーザーが信頼でき、信頼できるシステムをユーザーに提供するという評判を得ることができます。そうしないと、システムがバグのある別のアプリケーションユーザーを恐れさせる可能性があります。


    1. Oracleインスタンスのシャットダウンと起動

    2. Access2016でテーブルからレポートを作成する方法

    3. Fedora13でMySQLリレーショナルデータベースを使用する

    4. SQLでのDECODE関数の使用は何ですか?