Страница 1 из 1

План запроса

Добавлено: 21 сен 2007, 11:30
Monk
Всем доброго дня

Почему при написании запроса вида

Код: Выделить всё

   SELECT MIN(O1.ORDERDATE)
   FROM ORDERED O1
   WHERE O1.ORDERED_ID = :IDVALUE
   INTO :MINDATE_VAR
IB7.51 берет индекс по полю в агрегате, а не по primary ключу? (в оригинальном запросе в where стоит другое поле, иначе в агрегате смысла нет)

Приходится либо через FOR SELECT делать либо в запрос подставлять поле, что в условии записано, либо +0 к дате добавлять - тогда план корректно строится сам

Имхо, странное поведение планировщика :?

Добавлено: 22 сен 2007, 21:09
dimitr
на самом деле, он берет оба индекса. Но о втором умалчивает. Об этом детально написано в статье на данном сайте.

Добавлено: 24 сен 2007, 11:33
WildSery
dimitr писал(а):на самом деле, он берет оба индекса.
Дык вроде речь о FB1.5 была. Или IB7.51 так же делает? (это догадка или ты знаешь? ;))

Добавлено: 24 сен 2007, 13:22
dimitr
точно знать я не могу :-) Но так себя вел даже IB6.