AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.09.2007, 09:51   #1  
DPO is offline
DPO
Участник
 
19 / 10 (1) +
Регистрация: 24.09.2007
:( Плохой запрос в форме заказов
Такой запрос вызывается в форме заказов при сортировке строк по номенклатуре:

SELECT /*+ FIRST_ROWS */ a.salesid, a.linenum, a.itemid, a.salesstatus,
a.ledgeraccount, a.name, a.externalitemid, a.taxgroup, a.qtyordered,
a.salesdelivernow, a.remainsalesphysical, a.remainsalesfinancial,
a.costprice, a.salesprice, a.currencycode, a.linepercent, a.linedisc,
a.lineamount, a.confirmeddlv, a.reservation, a.salesunit, a.dimension,
a.dimension2_, a.dimension3_, a.dimension4_, a.dimension5_, a.priceunit,
a.inventtransid, a.custgroup, a.custaccount, a.salesqty, a.salesmarkup,
a.inventdelivernow, a.multilndisc, a.multilnpercent, a.salestype,
a.blocked, a.complete, a.remaininventphysical, a.transactioncode,
a.taxitemgroup, a.del_configid, a.taxautogenerated, a.underdeliverypct,
a.overdeliverypct, a.barcode, a.barcodetype, a.inventreftransid,
a.inventreftype, a.inventrefid, a.itembomid, a.lineheader, a.scrap,
a.returnactionid, a.inventtransidreturn, a.inventdimid, a.transport,
a.statprocid, a.estimategross, a.estimatenet, a.port, a.customerlinenum,
a.packingunitqty, a.packingunit, a.intercompanyinventtransid,
a.modifiedby, a.createddate, a.createdby, a.recid, b.inventdimid,
b.inventbatchid, b.inventlocationid, b.recid
FROM salesline a, inventdim b
WHERE substr(nls_lower(a.salesid), 1, 20) = nls_lower(:in1)
AND substr(nls_lower(a.inventdimid), 1, 20) = substr(nls_lower(
b.inventdimid), 1, 20)
ORDER BY substr(nls_lower(a.itemid), 1, 25) DESC

План исполнения:

SELECT STATEMENT
NESTED LOOPS
SALESLINE TABLE ACCESS [BY INDEX ROWID]
I_359ITEMIDX INDEX [FULL SCAN DESCENDING]
INVENTDIM TABLE ACCESS [BY INDEX ROWID]
I_698DIMIDIDX INDEX [UNIQUE SCAN]

Используемая БД - Oracle.
Если убрать хинт /*+ FIRST_ROWS */, то все становится нормально.
В чем может быть причина фуллскана? Причем по ItemIdx, хотя есть SalesItemIdx в который входят SalesId и ItemId?
Кто-нибудь с таким сталкивался и как это можно победить?
Старый 24.09.2007, 10:28   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Сильно подозреваю, что это из-за отсутствия в ORDER BY поля salesid.

Попробуйте для такого предложения ORDER BY пересчитать план испольнения
ORDER BY substr(nls_lower(a.salesid), 1, 20) DESC, substr(nls_lower(a.itemid), 1, 25) DESC
__________________
Axapta v.3.0 sp5 kr2
Старый 24.09.2007, 13:26   #3  
DPO is offline
DPO
Участник
 
19 / 10 (1) +
Регистрация: 24.09.2007
Цитата:
Сильно подозреваю, что это из-за отсутствия в ORDER BY поля salesid.
Спасибо, это конечно поможет, но видимо придется добавлять соритровку в методе executeQuery на датасорсе SalesLine вручную.
Может есть более простой способ с этим справиться?
Старый 25.09.2007, 05:48   #4  
eLLoco is offline
eLLoco
Участник
 
10 / 10 (1) +
Регистрация: 28.08.2007
Цитата:
Сообщение от DPO Посмотреть сообщение
Спасибо, это конечно поможет, но видимо придется добавлять соритровку в методе executeQuery на датасорсе SalesLine вручную.
Может есть более простой способ с этим справиться?
Что может быть проще, чем добавить сортировку в executeQuery вручную?
Старый 25.09.2007, 08:44   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Или попробовать использовать Oracle outline.
__________________
Axapta v.3.0 sp5 kr2
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Запрос на форме. fialka DAX: Программирование 9 23.08.2007 10:31
Почему на форме "Пользовательские настройки", когда я перехожу в нее из формы, отсутствует закладка "Запрос"? Hans DAX: Администрирование 0 05.07.2007 13:52
Запрос на форме как Select или готовая выборка в форму? rohlenko DAX: Программирование 9 23.06.2005 13:38
Запрет на редактирование полей в форме заказов bucken DAX: Функционал 10 27.05.2004 10:45
Слетает аналитика в форме Заказов ArturK DAX: Программирование 0 30.03.2004 14:32

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:35.