9
実行計画をシンプルにして性能改善!
• Index OnlyScanを使ってチューニングした効果を検証する。
id | Operation |テーブル
0 | SELECT |
1 | SORT ORDER BY |
2 | NESTED LOOP |
3 | ROWIDスキャン | 住所
4 | Index Range Scan | 住所
5 | フルスキャン | 会員
id | Operation |テーブル
0 | SELECT |
1 | NESTED LOOP |
2 | Index Range Scan | 住所
3 | Index Range Scan | 会員
カバリング・インデックスを用いて
チューニングした例。コストが激減!
Cost=2,609 Cost=220before after
10.
10
各DBMSでのIndex Only Scanサポート状況
•Index Only Scanをサポートする機能や、複合インデックスの制約などは
DBMSによって異なっている。
特徴的な機能 インデックス長、カラム数の制約
Oracle ・索引構成表をサポート 1ブロックの75%程度、32列まで
MySQL
(InnoDB)
・PKがクラスタ索引になる 3072バイト、各列は767バイト
PostgreSQL
・9.2からIndex Only Scanが可能
・テーブルにCLUSTER句を使える
2713バイト、32列まで
MS SQL Server
・PKのデフォルトがクラスタ索引
・INCLUDE句が使える
900バイト、16列まで