Показать сообщение отдельно
Старый 15.11.2005, 18:13   #18  
Горбунов Дмитрий is offline
Горбунов Дмитрий
Участник
 
10 / 11 (1) +
Регистрация: 16.11.2004
Адрес: С-Петербург
Я был не прав, не хватало DataAreaId ='tst' (мой косяк ):


select
level,A_TYPE_COD, A_TYPE_NAME from bmssa.A_TYPE A
where DataAreaId ='tst'
start with A_TYPE_MR_COD =0 and DataAreaId ='tst'
connect by prior A_TYPE_COD=A_TYPE_MR_COD and DataAreaId ='tst'


Скорость без индекса DataAteaID - 0.003 сек (было 0.016)


По Explain Plan (план запроса) БД пробегает 2 раза TABLE ACCESS FULL


Оптимизатор запросов (SQL Expert Pro) предложил хинт (время выполнения тоже):

select /*+ INDEX_COMBINE(A) */level,A_TYPE_COD, A_TYPE_NAME from bmssa.A_TYPE A
where DataAreaId ='tst'
start with A_TYPE_MR_COD =0and DataAreaId ='tst'
connect by prior A_TYPE_COD=A_TYPE_MR_COD and DataAreaId ='tst'

По Explain Plan БД пробегает 1 раз TABLE ACCESS FULL - при увеличении данных в таблице применение хинта будет очивидным (т.к. проход всего лишь один)

Спасибо Андре за хинт.