|
スポンサード リンク
● UNIONよりUNION ALLの使用を検討する
UNIONはSELECTの結果をマージした後に、暗黙のソート処理をして重複データを排除しますが、重複データが無いことが分かっている場合は、暗黙のソート処理を回避するために、UNION
ALLを使用する
※UNIONの他にも、DISTINCTや、GROUP BY、INTERSEST、MINUS等にも暗黙のソート処理が実行されるので、極力使用を避けた方が良い。
● テーブルに別名を付ける
テーブルに別命を付けると、解析速度が向上するので、別名を付けるようにする
|
○ select a.emp_id, a.emp_name from emp a;
× select emp_id, emp_name from emp; |
● ROWIDの使用を検討する
ROWIDとは、データベース内のレコードのアドレスを表すOracleの内部的な管理情報です。
その為、WHERE句にROWIDを使用すると、テーブルのレコードに最速でアクセスできます。
但し、Export/Importや表の移動(alter table moveコマンド)などでROWIDは変更されてしまう為、ROWIDの使用は、SELECTでデータを取得後に再度アクセスする場合などに限定されます。
例)データを検索して、そのレコードを更新する。
|
select emp_id,salary,rowid from emp;
update emp set salary = 250 where rowid = 'AAAF+OAAIAAABmMABL'; |
スポンサード リンク
|