Реферат: 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. Обзор некоторых новых возможностей
|