|
28.06.2008, 15:20 | #1 |
Moderator
|
Если используются placeholders (то есть вопросики, а не конкретные значения), статистика по большей части просто не используется. Например - если у тебя в запросе стоит значение statusReceipt==3, система может посмотреть в статистике гистограмму распределения значений и оценить что по этому условию отбирается всего 1-2% таблицы inventTrans. А вот если в запросе стоит statusReceipt==?, то система смотрит что всего поле statusReceipt может принимать 7 возможных значений, соответственно - по этому условию будет отобрана 1/7 от выборки.
Поэтому прежде чем чего-либо делать дальше, рекомендую в этом запросе тупо подставить forceLiterals и посмотреть чего будет... |
|
28.06.2008, 21:57 | #2 |
----------------
|
Цитата:
Например, сначала вы искали проводки по партии (использовался индекс по партиям), а потом стали искать по ГТД (и опять используется индекс по партиям). Цитата:
прежде чем чего-либо делать дальше, рекомендую в этом запросе тупо подставить forceLiterals и посмотреть чего будет
|
|
29.06.2008, 17:17 | #3 |
Участник
|
1. Попробуйте убрать из запроса в Аксапте forceNestedLoop
2. Проанализируйте в Managment Studio план выполнения этого запроса в "быстром"/"медленном" варианте и если они различаются, то пропишите в запрос хинт с индексом из "быстрого" плана. 3. В качестве "лома" можно попробовать покрывающий индекс на InventTrans: - ItemId - StatusIssue - StatusReceipt - ConfigId - InventDim - Qty - CostAmountPosted - CostAmountAdjustment Можно дополнить имеющийся индекс, главное использовать такую последовательность полей. PS. Начинать лучше всего, на мой взгляд, с анализа планов выполнения запроса. PS2. А так ли нужна вам себестоимость в форме резервирования, может выкинуть ее? |
|
01.07.2008, 11:59 | #4 |
Участник
|
Как бы нам этим ломом не убить другие запросы. Индекс уж очень тяжелый получается
|
|
01.07.2008, 12:11 | #5 |
Участник
|
|
|
01.07.2008, 12:17 | #6 |
Участник
|
Цитата:
Особенно вот эти поля настораживают. - Qty - CostAmountPosted - CostAmountAdjustment |
|
01.07.2008, 12:33 | #7 |
Участник
|
Цитата:
|
|
29.06.2008, 21:47 | #8 |
Moderator
|
Цитата:
Сообщение от Wamr
Не согласен с данным утверждением. При первом вызове такого запроса статистика используется и строится корректный план исполнения, а вот при повторном использовании план сохраняется, что и может приводить к подобным эффектам.
Например, сначала вы искали проводки по партии (использовался индекс по партиям), а потом стали искать по ГТД (и опять используется индекс по партиям). а с этим согласен Последний раз редактировалось fed; 29.06.2008 в 21:51. |
|
30.06.2008, 10:54 | #9 |
Участник
|
Спасибо всем.
Действительно, пока попробую повторно внимательно проанализировать планы запросов при нормальной работе и с "тормозами". |
|
Теги |
ax2.5 |
|
Похожие темы | ||||
Тема | Ответов | |||
Создание Lookup формы | 9 | |||
Крэш на ровном месте | 12 | |||
setFocus в момент инициализации формы | 3 | |||
Русская локализация Axapta 3 ? | 59 | |||
Динамические Lookup формы. | 0 |
|