目的
このチュートリアルを終了すると、次のことができるようになります。
- 遅いデータベース クエリを特定する
- 遅いデータベース クエリを解決する方法を理解する
- データベース UI の使用方法を理解する
データベース クエリを最適化する理由
アプリが中断されると、システムと同じくらい複雑な問題のトラブルシューティングを行う間、顧客は待たされることになります。データが報告され、問題の可能性について大まかな考えが浮かびましたが、どこから始めればよいでしょうか?
サイトがデータベースに依存している場合 (そして、おそらくそうです)、クエリの応答時間が期待どおりに機能しているかどうかを確認する必要があります。多くの場合、サイトのパフォーマンスは、データベースが顧客から送信されたクエリをどれだけうまく処理できるかに依存します。New Relic では、当社のデータベース UI を使用して、データベースのパフォーマンスを経時的に追跡できます。これにより、問題が発生した時期を特定できるため、必要なソリューションの種類を把握できます。
このチュートリアルでは、データベース操作で遅いクエリをトラブルシューティングする方法について説明します。
アプリ データの問題を特定する
当社のデータベース UI には、NRQL クエリで作成されたグラフが表示されます。これらのグラフは、インストールしたエージェントによって報告された apm.service.datastore.operation.duration
メトリックからのデータを使用します。これらのグラフは、上位のデータベース プロセスの応答時間を、上位の操作、クエリ時間、アプリのスループット別に示しています。
問題を調査するときは、これらのさまざまなエントリ ポイントをそれぞれ使用することをお勧めします。これらのエントリ ポイントは、同じストーリーのさまざまな部分を伝えているからです。UI を使用してパフォーマンスの問題の診断を開始する方法について説明します。
最も遅いクエリのトラブルシューティングを開始するには、APM の既定のデータベース UI から始めます。
データベース クエリを深く掘り下げる
より深く掘り下げるということは、データをたどることを意味します。問題が存在するおおよその領域を特定することは、解決策を見つけることの一部にすぎません。
データベースの平均的なパフォーマンスを確認したら、次のステップは、クエリ時間、トランザクション、およびスタック トレースでデータを追跡することです。