原則的に、検索はすべてテーブル全体にわたって行ごとに順次実行することができます。つまり、SQL オプティマイザの最も簡単な検索方針は順次検索です。この検索方針は、以下の場合に選択されます。
● 検索条件が指定されていない場合。
● 検索条件がキー列または索引列に検索条件が指定されていない場合。
SQL オプティマイザで使用可能な順次検索以外の方針の方が順次検索よりコストが大きい場合、テーブルは順次処理されます。
例
SQL オプティマイザを説明するために使用する例は、スキーマ HOTEL におけるデモデータベースDEMODB とその完全なデモデータにもとづいています。
データベースシステムのコンセプト、スキーマ HOTEL のオブジェクト
SELECT * FROM hotel.city
修飾:
なし
テーブル CITY の一次キー:
zip
修飾列の索引:
なし
使用される検索方針: TABLE SCAN
検索条件 (修飾) は指定されていません。
EXPLAIN 文の結果
TABLENAME |
COLUMN_OR_INDEX |
STRATEGY |
PAGECOUNT |
CITY |
|
TABLE SCAN |
11 |
|
|
RESULT IS
NOT COPIED、 |
|
SELECT * FROM hotel.city
WHERE name = 'Oxford'
修飾:
WHERE name
= 'Oxford'
テーブル CITY の一次キー: zip
修飾列の索引:
なし
使用される検索方針: TABLE SCAN
検索条件は一次キー列によって指定されていません。
EXPLAIN 文の結果
TABLENAME |
COLUMN_OR_INDEX |
STRATEGY |
PAGECOUNT |
CITY |
|
TABLE SCAN |
11 |
|
|
RESULT IS
NOT COPIED、 |
|
その他の SQL 文の簡単な例については、SQL チュートリアルを参照してください。
参照: