Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

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

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 вообще не понадобится, и можно избежать очень дорогостоящей операции соединения.

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

create bitmap index Sales_reg_bji

 on Sales(regions.region_name)

 from Sales, Regions

 where sales.region_id=regions.region_id

Чтобы побудить оптимизатор использовать этот индекс, применим подсказку (hint). В реальности, если таблицы будут достаточно большими, подсказки скорее всего не понадобятся, т.к. стоимость выполнения этого запроса с использованием индекса будет существенно меньше, чем без него:

select /*+ index(sales sales_reg_bji) */

  sum(amount) from sales, regions

  where

     regions.region_id  = sales.region_id

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


Рекомендуем скачать другие рефераты по теме: налоги в россии, сочинение.


Категории:




Предыдущая страница реферата | 1  2  3  4  5  6  7  8  9  10  11 |


Поделитесь этой записью или добавьте в закладки

   



Рефераты от А до Я


Полезные заметки

  •