|
|
|
|
#1 |
|
NavAx
|
Цитата:
Я делаю select sum(AmountMST) index <содержащий AmountMST> а в результате на SQL уходит то, что вы сказали. В любом случае, даже на запрос в таком виде я имею право рассчитывать получить корректный результат. ![]() 2 Kuskov Я не путаю index и index hint. В моем запросе был явно указан индекс, т.е. НЕ index hint (впрочем, надо будет попробовать указать index hint и полюбопытствовать). Я знаю о параметрах автоматического добавления GROUP BY и ORDER BY, и веду разговор о том, что при их работе появляется вот такой побочный эффект.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
|
|
|
|
|
#2 |
|
Участник
|
Цитата:
Для чего вообще может понадобиться использовать директиву index совместно с group by? На самом деле в случае когда последовательность полей в сортировке критична для алгоритма, даже в случае с order by лучше напрямую перечислить нужные поля, пусть даже они и совпадают с текущим состоянием индекса, чем косвенно ссылаться на те же поля через индекс и в будущем огрести кучу проблем. |
|
|
|
|
#3 |
|
NavAx
|
Элементарно, Ватсон!
![]() Приведу пару случаев. Первый паттерн использования (где поймал) я уже приводил в первом сообщении, добавлю к нему еще один. 1. Запрос внутри генератора РФО, при расчете суммы проводок использует как раз запрос с суммой по числовому полю. Попытка "подсказать" частенько выбирающему не тот индекс планировщику запросов как раз и привела к подобному финалу. 2. Да, собственно, почти любая фин. отчетность с попыткой оптимизации. Например, есть у нас "свой" генератор фин.отчетов, там запрос хранится в AOT с уже указанным индексом внутри - опять же, для скорости. Что касается полезности индекса по числовому полю, заранее скажу - во всякого рода отчетности часто используют конструкции типа AmountMST > 0, AmountMST < 0. Более того, такой индекс как раз и был создан по рекомендациям SQL Profiler'а.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...
|
|
|
|
|
#4 |
|
Участник
|
Цитата:
Цитата:
Подсказка планировщику осущесвтляется при помощи "index hint". В этом случае сам запрос не модифицируется, хинт влияет только на выбор плана исполнения запроса. "Index" - это принудителная сортировка/групировка по списку полей из индекса , т.е. изменение самого тела запроса. |
|
|
| Теги |
| ax2009, bug, sql, группировка, запрос (query), ошибка, ax4.0 |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|