Bits データベースの最適化

Bits データベースの最適化は PostgreSQL 専用です。他のデータベース管理システムのサポートをリクエストするには、Datadog の担当者または Datadog サポートにお問い合わせください。

概要

Bits データベースの最適化は、データベース全体でパフォーマンスが良くないクエリを検出し、環境のシミュレーションコピーに対して検証された最適化を特定し、クエリを引き起こした正確なコードを修正するプルリクエストとして結果を提供します。

最適化候補は Database Monitoring のテレメトリから自動的に選択され、追加のセットアップは不要です。候補は、クエリの実行時間、ブロッキングを引き起こしているクエリ、および回帰クエリに焦点を当てて、最も影響の大きいものが特定されます。

Bits データベースの最適化は、データベースへの書き込みアクセスを必要とせず、環境からの実際のデータをエクスポートまたは使用することはありません。最適化は、スキーマの統計的特性を使用した合成データを設定されたデータベースシミュレーションに対して実証的にテストされます。
最適化パネルの最適化されたクエリ。問題の詳細な概要、最適化されたクエリの差分、および PR を作成するためのボタンが表示されています。

前提条件

  • Database Monitoring は、ターゲットデータベースインスタンスに対して構成されます。Database Monitoring のセットアップを参照してください。
  • スキーマ収集が、ターゲットインスタンスで有効になっています。
  • 自動 PR 作成のためには:
    • APM が、対処したいクエリを発行するサービスに対して構成されている必要があります。詳細については、Database Monitoring とトレースの相関付けを参照してください。
    • あなたの Datadog 組織で GitHub リポジトリがリンクされている必要があります。

最適化の表示

クエリリスト

Database Monitoring > クエリ画面で、最適化が利用可能なクエリには [Status] (ステータス) 列に AI アイコンが表示されます。アイコンにカーソルを合わせると最適化の概要が表示され、アイコンをクリックすると最適化パネルが開きます。

クエリリストを最適化タイプでフィルタリングするには、リストの上にある [Optimizations] (最適化) からオプションを選択します。

クエリ画面の [ステータス] 列。最適化が利用可能なクエリ行に AI アイコンが表示されています。

最適化パネル

最適化パネルには、クエリの問題の概要、シミュレーションで使用された最適化後のクエリ、およびシミュレーションのパフォーマンス影響のビジュアルが含まれます。

シミュレーションのパフォーマンス影響のビジュアルで、改善に関する詳細を調べてください。

  • 改善の概要 (例えば「96.9%速い」) にカーソルを合わせると、最適化前後の実行時間、論理読み取り数、およびダーティ状態の共有ブロック数を確認できます。テーブルには、各メトリックの平均値、中央値、P95、および最大値が表示されます。
  • ビジュアル内の各項目にカーソルを合わせると、詳細が表示されます。
シミュレーションされたパフォーマンス影響のビジュアルの例。96.9%速く最適化されたクエリを示しています。

[Compare Plans] (プランの比較) をクリックすると、現在の実行プランと最適化された実行プランを並べて比較できます。 [- List View] (リストビュー) は、実行プランの操作の階層リストを表示し、各ステップのノードコストと行の推定値を示します。 [- Map View] (マップビュー) は、実行プランを視覚的表現で表示します。異なるメトリクスでプランを比較するオプションがあります。 [- Raw] (生) は、実行プランの生出力を表示します。

[プランの比較] のマップビュー。最適化されたクエリの追加および削除された操作を示しています。

プルリクエストをレビューする

データベースの最適化修正の PR をレビューするには、[Review PR by Bits AI] (Bits AI による PR のレビュー) を選択します。GitHub の PR が、シミュレーション結果を含む事前に入力された説明付きで開きます。

自動化プルリクエストには、クエリを発行するサービスのために APM が構成されていて、GitHubリポジトリが Datadog 組織にリンクされている必要があります。

参考資料