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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2010, 15:44   #1  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,499 / 1097 (39) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Вот пристали к человеку...

ЕЩЁ РАЗ!!! Проблема в DAX, она считает себя умнее SQL!!!

Вот вам доказательства, DAX3 KR кажется 2 SP4 Standart:
X++:
static void Job1(Args _args)
{
    InventTrans                 InventTrans;
    ;
    select InventTrans
        where InventTrans.InventTransId == "л00000380";

    info(InventTrans.InventTransId);

    select InventTrans
        where InventTrans.InventTransId == "л00000380"
           && InventTrans.ItemId        == "СвОф-1000"
           && InventTrans.StatusIssue   == StatusIssue::OnOrder
           && InventTrans.DateStatus    == 30\04\2006
           && InventTrans.StatusReceipt == StatusReceipt::None;

    info(InventTrans.InventTransId);

    select InventTrans
        where InventTrans.StatusReceipt == StatusReceipt::None
           && InventTrans.StatusIssue   == StatusIssue::OnOrder
           && InventTrans.ItemId        == "СвОф-1000"
           && InventTrans.DateStatus    == 30\04\2006
           && InventTrans.InventTransId == "л00000380";

    info(InventTrans.InventTransId);
}
Планы запросов записанные аксаптой:
X++:
SELECT A.ITEMID,A.STATUSISSUE,A.DATEPHYSICAL,A.QTY,A.COSTAMOUNTPOSTED,A.CURRENCYCODE,A.TRANSTYPE,A.TRANSREFID,A.INVOICEID,A.VOUCHER,A.DATEEXPECTED,A.DATEFINANCIAL,A.COSTAMOUNTPHYSICAL,A.INVENTTRANSID,A.STATUSRECEIPT,A.PACKINGSLIPRETURNED,A.INVOICERETURNED,A.PACKINGSLIPID,A.VOUCHERPHYSICAL,A.COSTAMOUNTADJUSTMENT,A.QTYSETTLED,A.COSTAMOUNTSETTLED,A.VALUEOPEN,A.DIRECTION,A.DATESTATUS,A.COSTAMOUNTSTD,A.DATECLOSED,A.DEL_CONFIGID,A.INVENTTRANSIDFATHER,A.COSTAMOUNTOPERATIONS,A.ITEMROUTEID,A.ITEMBOMID,A.INVENTTRANSIDRETURN,A.PROJID,A.PROJCATEGORYID,A.INVENTDIMID,A.INVENTDIMFIXED,A.DATEINVENT,A.CUSTVENDAC,A.TRANSCHILDREFID,A.TRANSCHILDTYPE,A.TIMEEXPECTED,A.REVENUEAMOUNTPHYSICAL,A.ASSETID,A.PROJADJUSTREFID,A.DEL_TAXAMOUNTPHYSICAL,A.ASSETBOOKID,A.INVENTREFTRANSID,A.COSTAMOUNTSECCURPOSTED_RU,A.COSTAMOUNTSECCURPHYSICAL_RU,A.COSTAMOUNTSECCURADJUSTMENT_RU,A.DATECLOSEDSECCUR_RU,A.QTYSETTLEDSECCUR_RU,A.COSTAMOUNTSETTLEDSECCUR_RU,A.VALUEOPENSECCUR_RU,A.COSTAMOUNTSTDSECCUR_RU,A.RECVERSION,A.RECID FROM INVENTTRANS A WITH( INDEX(I_177TRANSIDIDX)) WHERE ((DATAAREAID=?) AND (INVENTTRANSID=?)) OPTION(FAST 20)
X++:
SELECT A.ITEMID,A.STATUSISSUE,A.DATEPHYSICAL,A.QTY,A.COSTAMOUNTPOSTED,A.CURRENCYCODE,A.TRANSTYPE,A.TRANSREFID,A.INVOICEID,A.VOUCHER,A.DATEEXPECTED,A.DATEFINANCIAL,A.COSTAMOUNTPHYSICAL,A.INVENTTRANSID,A.STATUSRECEIPT,A.PACKINGSLIPRETURNED,A.INVOICERETURNED,A.PACKINGSLIPID,A.VOUCHERPHYSICAL,A.COSTAMOUNTADJUSTMENT,A.QTYSETTLED,A.COSTAMOUNTSETTLED,A.VALUEOPEN,A.DIRECTION,A.DATESTATUS,A.COSTAMOUNTSTD,A.DATECLOSED,A.DEL_CONFIGID,A.INVENTTRANSIDFATHER,A.COSTAMOUNTOPERATIONS,A.ITEMROUTEID,A.ITEMBOMID,A.INVENTTRANSIDRETURN,A.PROJID,A.PROJCATEGORYID,A.INVENTDIMID,A.INVENTDIMFIXED,A.DATEINVENT,A.CUSTVENDAC,A.TRANSCHILDREFID,A.TRANSCHILDTYPE,A.TIMEEXPECTED,A.REVENUEAMOUNTPHYSICAL,A.ASSETID,A.PROJADJUSTREFID,A.DEL_TAXAMOUNTPHYSICAL,A.ASSETBOOKID,A.INVENTREFTRANSID,A.COSTAMOUNTSECCURPOSTED_RU,A.COSTAMOUNTSECCURPHYSICAL_RU,A.COSTAMOUNTSECCURADJUSTMENT_RU,A.DATECLOSEDSECCUR_RU,A.QTYSETTLEDSECCUR_RU,A.COSTAMOUNTSETTLEDSECCUR_RU,A.VALUEOPENSECCUR_RU,A.COSTAMOUNTSTDSECCUR_RU,A.RECVERSION,A.RECID FROM INVENTTRANS A WITH( INDEX(I_177STATUSITEMIDX)) WHERE ((DATAAREAID=?) AND (((((INVENTTRANSID=?) AND (ITEMID=?)) AND (STATUSISSUE=?)) AND (DATESTATUS=?)) AND (STATUSRECEIPT=?))) OPTION(FAST 20)
X++:
SELECT A.ITEMID,A.STATUSISSUE,A.DATEPHYSICAL,A.QTY,A.COSTAMOUNTPOSTED,A.CURRENCYCODE,A.TRANSTYPE,A.TRANSREFID,A.INVOICEID,A.VOUCHER,A.DATEEXPECTED,A.DATEFINANCIAL,A.COSTAMOUNTPHYSICAL,A.INVENTTRANSID,A.STATUSRECEIPT,A.PACKINGSLIPRETURNED,A.INVOICERETURNED,A.PACKINGSLIPID,A.VOUCHERPHYSICAL,A.COSTAMOUNTADJUSTMENT,A.QTYSETTLED,A.COSTAMOUNTSETTLED,A.VALUEOPEN,A.DIRECTION,A.DATESTATUS,A.COSTAMOUNTSTD,A.DATECLOSED,A.DEL_CONFIGID,A.INVENTTRANSIDFATHER,A.COSTAMOUNTOPERATIONS,A.ITEMROUTEID,A.ITEMBOMID,A.INVENTTRANSIDRETURN,A.PROJID,A.PROJCATEGORYID,A.INVENTDIMID,A.INVENTDIMFIXED,A.DATEINVENT,A.CUSTVENDAC,A.TRANSCHILDREFID,A.TRANSCHILDTYPE,A.TIMEEXPECTED,A.REVENUEAMOUNTPHYSICAL,A.ASSETID,A.PROJADJUSTREFID,A.DEL_TAXAMOUNTPHYSICAL,A.ASSETBOOKID,A.INVENTREFTRANSID,A.COSTAMOUNTSECCURPOSTED_RU,A.COSTAMOUNTSECCURPHYSICAL_RU,A.COSTAMOUNTSECCURADJUSTMENT_RU,A.DATECLOSEDSECCUR_RU,A.QTYSETTLEDSECCUR_RU,A.COSTAMOUNTSETTLEDSECCUR_RU,A.VALUEOPENSECCUR_RU,A.COSTAMOUNTSTDSECCUR_RU,A.RECVERSION,A.RECID FROM INVENTTRANS A WITH( INDEX(I_177STATUSITEMIDX)) WHERE ((DATAAREAID=?) AND (((((STATUSRECEIPT=?) AND (STATUSISSUE=?)) AND (ITEMID=?)) AND (DATESTATUS=?)) AND (INVENTTRANSID=?))) OPTION(FAST 20)

Последний раз редактировалось raz; 17.03.2010 в 15:45. Причина: 1
За это сообщение автора поблагодарили: Vadik (1), Logger (4), Ace of Database (1).
Старый 17.03.2010, 15:59   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,914 / 5737 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от raz Посмотреть сообщение
Вот пристали к человеку...

ЕЩЁ РАЗ!!! Проблема в DAX, она считает себя умнее SQL!!!

Вот вам доказательства, DAX3 KR кажется 2 SP4 Standart:
Может быть глобальное отключение хинтов (возможное и в трешке кстати), более эффективно чем ручное переупорядочивание полей в запросах ?
Старый 17.03.2010, 16:12   #3  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,499 / 1097 (39) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от fed Посмотреть сообщение
Может быть глобальное отключение хинтов (возможное и в трешке кстати), более эффективно чем ручное переупорядочивание полей в запросах ?
согласен, но кто поручится, что в анализаторе DAX не осталось еще каких "улучшающих" алгоритмов?
Старый 17.03.2010, 16:18   #4  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,914 / 5737 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от raz Посмотреть сообщение
согласен, но кто поручится, что в анализаторе DAX не осталось еще каких "улучшающих" алгоритмов?
А кто гарантирует что эти алгоритмы можно заблокировать переставляя поля в условиях запроса ?
Теги
index hint, sql server, оптимизация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Параметры запросов БД CasperSKY DAX: Программирование 3 22.03.2008 19:32
Владельцы таблиц в БД аксапты AxaptaUser DAX: Администрирование 11 23.05.2007 18:33
Оптимизация запросов psv DAX: Администрирование 6 29.07.2004 23:17
Оптимизация запросов Mystery DAX: Программирование 3 25.02.2004 13:12
Просмотр SQL запросов к БД с помощью файла Log Anton Sk. DAX: База знаний и проекты 3 25.01.2002 16:31
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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