Реферат: Oracle9i. Обзор некоторых новых возможностей

Создадим таблицы:

create table Regions

(

region_id number primary key, -- первичныйключобязателендлясоздания BJI

region_name varchar2(200)

);

create table Sales

(

id number primary key,

region_id number, -- опустимограничениявнешнегоключа

product_id number,

amount number,

sal_date date

);

Выполним запрос:

Select sum(amount)

from sales, regions

where

regions.region_id = sales.region_id

and regions.region_name = 'Центр'

Рассмотрим план выполнения этого запроса (это не единственно возможный, но вполне вероятный план). В плане, естественно, присутствует просмотр обеих таблиц и операция их соединения:

SELECT STATEMENT Optimizer=ALL_ROWS

SORT (AGGREGATE)

NESTED LOOPS

TABLE ACCESS (FULL) OF 'SALES'

TABLE ACCESS (BY INDEX ROWID) OF 'REGIONS'

INDEX (UNIQUE SCAN) OF 'REGIONS_PK' (UNIQUE)

Если же это соединение выполнить один раз при построении индекса, и в индексе хранить указатели на строки таблицы Sales вместе с соответствующими названиями регионов из таблицы Regions, то для выполнения вышеописанного запроса таблица Regions вообще не понадобится, и можно избежать очень дорогостоящей операции соединения.

Создадим индекс:

К-во Просмотров: 229
Бесплатно скачать Реферат: Oracle9i. Обзор некоторых новых возможностей