|
![]() |
#1 |
Роман Долгополов (RDOL)
|
Цитата:
![]() пишем в аксапте запрос X++: select ItemId from inventTrans group by ItemId; X++: SELECT SUBSTR(NLS_LOWER(A.ITEMID),1,20) FROM INVENTTRANS A GROUP BY SUBSTR(NLS_LOWER(A.ITEMID),1,20) ORDER BY SUBSTR(NLS_LOWER(A.ITEMID),1,20) Но план запроса такой OPERATION OPTIONS OBJECT_NAME ID PARENT_ID POSITION ------------------------------ ------------------------------ ------------------------------ ---------- ---------- ---------- SELECT STATEMENT 0 8379 SORT GROUP BY 1 0 1 TABLE ACCESS FULL INVENTTRANS 2 1 1 Если отрезать GROUP BY и ORDER BY то все приходит в норму X++: SELECT SUBSTR(NLS_LOWER(A.ITEMID),1,20) FROM INVENTTRANS A ------------------------------ ------------------------------ ------------------------------ ---------- ---------- ---------- SELECT STATEMENT 0 420 INDEX FAST FULL SCAN I_177OPENITEMIDX 1 0 1 Если вместо GROUP BY сделать DISTINCT, то то же все по индексу X++: SELECT DISTINCT SUBSTR(NLS_LOWER(A.ITEMID),1,20) FROM INVENTTRANS A ------------------------------ ------------------------------ ------------------------------ ---------- ---------- ---------- SELECT STATEMENT 0 3253 SORT UNIQUE 1 0 1 INDEX FAST FULL SCAN I_177OPENITEMIDX 2 1 1 В общем не получается получить и рыбку и удовольствие ... Пробовал ORA EE 9.2.0.6.0 64 bit Production под Linux ORA EE 9.2.0.7.0 под Windows Если у кого есть идеи как все таки заставить использовать данные из покрывающих функциональных индексов (кроме прямых SQL запросов) поделитесь пжл Насчет отказа от функциональных индексов в принципе. Вроде как в 10R2 появился нормальный режим Case Insensitive (NLS_SORT=BINARY_CI, NLS_COMP=LINGUISTIC) Это бы позволило и от функциональных индексов избавится и с MONOCASE не заморачиваться. 10-ку ни разу не щупал и вообще спецом по ораклу себя не считаю. Есть ли у кого опыт работы с Case Insensitive? |
|
![]() |
#2 |
Участник
|
Ну так я примерно это и имел в виду когда писал что "Может получиться еще более тяжелый запрос..."
А вообще план исполнения сильно зависит от настроек оракла, возможно получится как нить довинтить настройки чтоб оптимизатор выбирал нужный план запроса. |
|