Database Tuning (チューニング)
DB Optimizer(オプティマイザ)
SQL を最も速く効率的に実行する最適な処理経路を生成する、DBMS 内部の中核エンジンである。
- 種類
- ルールベースオプティマイザ、コストベースオプティマイザ
- 過程
- ユーザーが投げたクエリを実行するため、候補となる実行計画を探す。
- オブジェクト統計およびシステム統計情報を通じて、各実行計画の予想コストを算定する。
- 各実行計画を比較し、最も低いコストを持つものを選択する。
ヒント(Hint)
- ヒントとは、SQL をチューニングするための指示構文である。
- オプティマイザが最適な計画で SQL 文を処理できない場合に、開発者が直接最適な実行計画を提供するものである。
- ヒントは SELECT の後に記述でき、INDEX、PARALLEL などさまざまなヒント句がある。
データベースチューニングと方法
-
DB チューニングは、データベース構造やデータベース自体、オペレーティングシステムなどを調整し、データベースシステムの性能を向上させる作業を意味する。
-
チューニングは DB 設計チューニング > DBMS チューニング > SQL チューニングの段階で進められる。
1段階: DB 設計チューニング(モデリング観点)
- チューニング方法
- データベース設計段階で性能を考慮して設計
- データモデリング、インデックス設計
- データファイル、テーブルスペース設計
- データベース容量算定
- チューニング事例
- 非正規化、分散ファイル配置
2段階: DBMS チューニング(環境観点)
- チューニング方法
- 性能を考慮してメモリやブロックサイズを指定
- CPU、メモリ I/O に関する観点
- チューニング事例
- Buffer サイズ
- Cache サイズ
3段階: SQL チューニング(APP 観点)
- チューニング方法
- SQL 作成時に性能を考慮
- Join, Indexing, SQL Execution Plan
- チューニング事例
- Hash / Join