![]() |
#4 |
Участник
|
![]()
Для пример был взят следующий маленький подзапрос, задействованный в "большом" запросе:
select level,A_TYPE_COD, A_TYPE_NAME from bmssa.A_TYPE A where DataAreaId ='tst' --внешний параметр start with A_TYPE_MR_COD =0 --внешний параметр connect by prior A_TYPE_COD=A_TYPE_MR_COD Данный запрос будет выполняться только средствами Oracle. MS SQL Server никогда не слышал о connect by prior. Запрос запускался через класс Connection в MS Axapta. На таблице стояли 2(3) индекса: 0. (DataAreaId) 1.A_TYPE_MR_COD (+DataAreaId) 2.A_TYPE_COD и A_TYPE_MR_COD (+DataAreaId) Время выполнения запроса: 1. Без индекса DataAreaId - 0.016 сек (1 и 2 индекс без DataAreaID) 2. С индексом DataAreaId - 1.000 сек (0,1 и 2 индекс с DataAreaID) Боюсь что оптимизировать в данном случае просто нечего. |
|