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