|
![]() |
#1 |
Участник
|
![]()
Для пример был взят следующий маленький подзапрос, задействованный в "большом" запросе:
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) Боюсь что оптимизировать в данном случае просто нечего. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Горбунов Дмитрий
Для пример был взят следующий маленький подзапрос, задействованный в "большом" запросе:
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 я так понимаю, индексы просто не используются. попробуй включить в запрос дополнительные условия по коду компании: 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 and DataAreaId ='tst' единственно, что не помню, можно ли так писать в запросе... оракла под рукой нет проверить. Последний раз редактировалось Roman. ~RVS; 15.11.2005 в 16:26. |
|
![]() |
#3 |
злыдень
|
Цитата:
Сообщение от Горбунов Дмитрий
Время выполнения запроса:
1. Без индекса DataAreaId - 0.016 сек (1 и 2 индекс без DataAreaID) 2. С индексом DataAreaId - 1.000 сек (0,1 и 2 индекс с DataAreaID) Боюсь что оптимизировать в данном случае просто нечего. или указать план запроса от варианта N 1 для варианта N 2 |
|
![]() |
#4 |
Moderator
|
Цитата:
сложно всё как то
наверно план запроса - "натурал" или как там в оракле называется ![]() |
|
Теги |
oracle, индекс, производительность |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|