|
28.05.2009, 15:34 | #1 |
Участник
|
Цитата:
Сообщение от Wamr
рекомендую к прочтению
http://axapta.mazzy.ru/lib/indexhints/
__________________
Жить все веселей!.. AX3SP3CU1 |
|
28.05.2009, 18:30 | #2 |
Модератор
|
Цитата:
__________________
-ТСЯ или -ТЬСЯ ? |
|
29.05.2009, 07:22 | #3 |
Участник
|
Директива index добавляет сортировку по полям индекса и как написал AndyD (поскольку добавилась сортировка) у вас план запроса должен стать(так ли это?) :
Цитата:
X++: SELECT SUM(A.COSTAMOUNTPOSTED),SUM(A.COSTAMOUNTADJUSTMENT) FROM INVENTTRANS A (INDEX(I_177TRANSIDIDX)) WHERE ((DATAAREAID=?) AND ((((INVENTTRANSID=?) AND (STATUSISSUE=?)) AND (STATUSRECEIPT=?)) AND (INVOICEID=?))) OPTION(FAST 2) P.S. Кстати в стандарной AX запросы вида X++: select sum(CostAmountPosted) from InventTrans where InventTrans.InventTransId == ... |
|
01.06.2009, 12:41 | #4 |
Участник
|
Цитата:
Сообщение от SRF
Директива index добавляет сортировку по полям индекса и как написал AndyD (поскольку добавилась сортировка) у вас план запроса должен стать(так ли это?) :
В случае же c index hint TransIdIdx план запроса должен стать X++: SELECT SUM(A.COSTAMOUNTPOSTED),SUM(A.COSTAMOUNTADJUSTMENT) FROM INVENTTRANS A (INDEX(I_177TRANSIDIDX)) WHERE ((DATAAREAID=?) AND ((((INVENTTRANSID=?) AND (STATUSISSUE=?)) AND (STATUSRECEIPT=?)) AND (INVOICEID=?))) OPTION(FAST 2) Цитата:
в данном случае если бы выбрался данный индексе этой темы и не было бы ;-)
__________________
Жить все веселей!.. AX3SP3CU1 |
|
01.06.2009, 13:03 | #5 |
Участник
|
Зайдите в аксапту, откройте AOT (Ctrl + D), на корне дерева(узел AOT) нажмите CTRL + F, или в контекстном меню выберите команду 'Найти', на вкладке 'Имя и позиция' в поле 'Содержащийся текст' - наберите 'sum(CostAmountAdjustment)'(без апострофов) и нажмите кнопку 'Поиск', если у вас в коде приложения есть подобные запросы, то в результате вы сможете увидеть все места откуда данный запрос генерируется.
Если таковой запрос имеется, то поставьте для него насильно X++: index hint TransIdIdx P.S. Конечно можно просто на InventTrans добавить индекс с полями InventTransId, StatusReceipt, StatusIssue и во все не искать данный запрос в коде. НО этот вариант наверное лучше использовать только в самом крайнем случае. Последний раз редактировалось SRF; 01.06.2009 в 13:14. Причина: ошибки |
|
01.06.2009, 13:56 | #6 |
Участник
|
Так я знал. Но все равно спасибо. На счет места в коде откуда генерится запрос - я знаю (через трассировку вышел ;-) ).
__________________
Жить все веселей!.. AX3SP3CU1 |
|
Теги |
hint, index, kernel rollup, полезное, ax3.0, kr (kernel rollup) |
|
|