|
![]() |
#1 |
Роман Долгополов (RDOL)
|
Цитата:
![]() Цитата:
Сообщение от KiselevSA
![]() У меня отдаленые воспоминая из прочтения запросов под Oracle, что оптимизатор с Group By начинает нормально работать, если в выборке есть группировочная функция (count, min, max и т.п.)
Каков будет план, если запрос сделать таким: select ItemId, max(ItemId) from inventTrans group by ItemId? В аксапте X++: select maxof(itemId) from inventtrans group by ItemId; X++: select ItemId, maxof(itemId) from inventtrans group by ItemId; SELECT MAX(A.ITEMID),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) план соответственно с полным сканированием Заставить брать данные из индекса можно только приведя запрос к следующему виду SELECT MAX(SUBSTR(NLS_LOWER(A.ITEMID),1,20)) FROM INVENTTRANS A GROUP BY SUBSTR(NLS_LOWER(A.ITEMID),1,20) т.е чтобы макс брался от функций и не было сортировки как такое выдать аксапты не используя прямые соединения у меня идей нет. а их использовать не хочется |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|