# クエリレイテンシ予測
## 定義
クエリレイテンシ予測(QPP: Query Performance Prediction)は、データベース管理システム(DBMS)における SQL クエリの実行時間を事前に推定する問題である。クラウド環境でのリソース管理、スケジューリング、SLO 遵守、クエリ最適化に直接活用される。
---
## 問題の構造
QPP はクエリの実行レイテンシに影響する要因を大きく 2 種類に分類できる:
| 要因 | 内容 |
|------|------|
| クエリ固有要因 | クエリの複雑さ、結合順序、アクセスパス、カーディナリティ推定精度 |
| システムコンテキスト要因 | ハードウェア種別(CPU/メモリ/I/O)、仮想化・マルチテナント負荷、クラウドインスタンス種別 |
従来の多くの手法はクエリ固有要因のみをモデル化し、システムコンテキストが一定であると仮定する。しかしクラウド環境ではこの仮定が成立しないことが多い。
---
## 主要アプローチ系譜
### 古典的コストモデル(1980年代〜)
DBMS 組み込みの手解析型コストモデル。CPU、I/O、メモリを演算子ごとに見積もる。クラウド環境では DBMS コスト推定値と実際のレイテンシが乖離することが多く、Microsoft SCOPE や AWS Redshift でその限界が報告されている。
### 機械学習ベース QPP(2010年代〜)
クエリプランを ML で直接学習するアプローチ。以下のサブカテゴリが存在する:
- **演算子単位モデル(Per-operator model)**: クエリプランの各演算子にモデルを適用
- **クエリプランモデル**: クエリプラン木全体を GNN・CNN で処理
- Tree Convolutional Neural Network (TCNN)
- Graph Convolutional Network (GCN)
- QueryFormer(トランスフォーマーベース)
- **特徴フラット化モデル**: クエリプランのキー特徴量を平坦な特徴ベクトルに変換
### インスタンス特化モデル(Instance Optimized Model)
特定のデータベース・システム環境の組み合わせに特化して学習するモデル。高精度だが、**新規システムコンテキストへの汎化が困難**という根本的課題がある。AWS Redshift では百万件のクエリがあっても「グローバルに有用なものが学習されない」という問題が報告されている。
### システムコンテキスト考慮型 QPP(2024〜)
[[OSprey]] が代表例。クエリ特性とシステムコンテキストを分離して学習する**因数分解型アーキテクチャ**を採用。OS メトリクス時系列を入力とする事前学習済みトランスフォーマーでシステム状態を汎化的に表現し、DB 特化 GCN と統合する。
---
## 評価指標
- **Q-Error(乗算誤差)**: max(y/ŷ, ŷ/y)。対称的で解釈しやすく、過小/過大推定を同等に扱う。多くの QPP 研究で採用
- **相対誤差**: |y - ŷ|/y。非対称のため過大推定を過剰に罰する傾向がある
---
## 横断的知見
### OSprey(2024, [[MIT CSAIL]])
- [[@2024__arXiv__OS Pre-trained Transformer - Predicting Query Latencies across Changing System Contexts]]
- **因数分解の効果**: クエリ特性モデル(DB 特化 GCN)とシステム状態モデル(OSprey)を独立に学習することで、単一環境での学習から複数環境への汎化が可能
- **実験規模**: 14 ワークロード × 10 AWS インスタンス × 3 繰り返し、150K+ PostgreSQL クエリプラン
- **定量的改善**: 新規システムコンテキストで中央値・平均 Q-Error を最大 3× 改善。GCN (DB, Same Env) と同等の精度を新規環境で達成
- **OS メトリクスの重要性**: 92 種類の SAR メトリクスのうち、Block Device・ページング統計・I/O 圧力停止ログが IMDb ワークロードで特に重要
### クラウド DBMS 産業実装の課題(AWS Redshift, Microsoft SCOPE)
- 数百万クエリがあってもグローバルに有用なモデルが学習されない問題
- 新規インスタンスで数百クエリを見るまで予測できない問題
- 「what-if」質問(例: メモリを増やしたら?)への対応困難
---
## 未解決の問い
1. **大規模商用クラウドへのスケールアップ**: OSprey は 10 インスタンス・小規模ワークロードの証明概念。Snowflake・Redshift 規模(日次数百万クエリ)での有効性は未検証
2. **分散 DBMS**: 複数ノードの OS ログをどう統合するか。ノード間の因果関係をどう表現するか
3. **ログ収集コスト削減**: 92 種類のメトリクスをどう軽量に収集・送信するか。どのメトリクスが本質的か
4. **事前学習データの質と量**: 何種類・何規模のハードウェアで事前学習すれば汎化が十分か
5. **マルチクラウド対応**: AWS・GCP・Azure でメトリクスの種類・名称が異なる環境での適用方法
6. **リアルタイム性**: システム状態が急変するケース(クエリ実行中の負荷スパイク)への対応
---
## 関連概念
- [[データベース自律診断]] — QPP は異常な性能劣化の原因分析にも活用される
- [[データベースノブチューニング]] — 予測精度がチューニング効果の評価にも関与
- [[近似クエリ処理]] — 実行時間削減アプローチとの補完関係
- [[データベース O&M]] — QPP は O&M の構成要素
---
## 出典
- [[@2024__arXiv__OS Pre-trained Transformer - Predicting Query Latencies across Changing System Contexts]](本 wiki での初出、OSprey システム)