ORACLEMASTER 備忘録8(6/10)
続き
スキーマオブジェクトの追加作成
索引
“索引”は、検索時のディスクI/Oを減らし、表データの検索を高速にするために作成するオブジェクト。
索引の役割は、書籍の巻末についている索引をイメージすると理解しやすい。書籍の索引を利用すると、ページ数の多い書籍の中から特定の情報が載っているページを素早く見つけることができる。データベースの索引の役割もこれと同じ。
データベースの索引には「キーワード」と「格納されている表のデータブロックのアドレス」が記載されており、これらの情報を利用すると目的のデータにダイレクトにアクセスできる。
索引には次のような特徴がある。
・索引は、“索引セグメント”として記憶域を使用するオブジェクトである。
・索引を作成する際には“表領域”を指定できる。
・索引は、“表”に関連付けられる。
・索引は、表内の“一つ以上の列”に対して作成できる。
・表に“主キー制約”または“一意キー制約”を指定すると、その列には索引が“暗黙的”ぶ作成される。
・索引は、表のデータがDML文によって挿入、更新、削除されると、それに伴って“自動的にメンテナンス”される。
なお、索引を使用するか否かは、ユーザーがデータへアクセスした際に自動的に判断されるため、索引を作成したとしても、その索引が使用されるかどうかは保証されない。データベースが「索引をしたほうが効率的なサクセスパスになる」と判断した場合のみ、索引は利用できる。
なお、索引をなるべく使用させたい場合は、「検索条件に指定されている列」に索引を作成しておく。
SQL Developerを使用した索引の作成
SQL Developerを使用して索引を作成するには、次の手順を実行する。
- 索引はUSERS表領域に格納する。「索引」を右クリックして「新規索引作成」をクリックする。
- 「名前」フィールドに索引の名前を入力して、索引を作成するスキーマおよび表名を選択する。「列名または式」フィールドに「LASTNAME」を選択して、「+」(追加)アイコンをクリックする。その後、表領域を指定するために右上の「詳細」チェックボックスにチェックを入れる。
- 「索引の作成」の詳細ウィンドウが開く。「プロパティ」を選択して、「記憶域オプション」ボタンをクリックする。
- 表領域を選択して、「OK」ボタンをクリックする。
- 「OK」ボタンをクリックして索引を作成する。
SQL文を使用した索引の作成
SQL文を使用して索引を作成するには、“CREATE INDEX文”を使用する。
・索引の作成
CREATE [UNIQUE] INDEX 索引名 ON 表名(列名);