У меня проблема с индексами в моем запросе firebird.
Ниже мой запрос.
SELECT a.objid,
b.running_qty,
b.running_qty2,
b.running_totalcost,
b.running_lastcost
FROM mm_itrghd a,
mm_itrgdt b
WHERE (a.objid = b.header_id)
AND (b.item_id = 1200)
AND (b.wh_id = 1)
AND ((a.postdate < '2010-09-05 00:00:00') OR ((a.postdate = '2010-09-05 00:00:00') AND (a.objid < 50000)))
ORDER BY a.postdate desc,
a.objid desc,
b.calctyp desc,
b.objid desc
Как видите, по порядку по разделам мы используем desc. У меня есть нисходящий индекс, но мой план запросов не использует его.
Используются только индексы таблицы A (a.objid) и таблицы B (b.item_id, b.wh_id)
Я что-то пропустил? Какой индекс вы думаете, я должен создать?
Индекс для таблицы A (mm_itrghd)
(TR_CODE, DOC_ID) по возрастанию
(OBJID) По возрастанию
(TR_CODE) по возрастанию
(ПОСТДАТА) По возрастанию
(POSTDATE, OBJID) По возрастанию
(POSTDATE, OBJID) По убыванию
Индекс для таблицы B (mm_itrgdt)
(HEADER_ID) по возрастанию
(ITEM_ID) по возрастанию
(WH_ID) по возрастанию
(LOT_NO) по возрастанию
(SERIAL_NO, ITEM_ID) по возрастанию
(HEADER_ID, ITEM_ID, WH_ID, SERIAL_NO, LOT_NO) По возрастанию
(HEADER_ID, ITEM_ID, WH_ID) по возрастанию
(CALCTYP, OBJID) По возрастанию
(ITEM_ID, WH_ID) по возрастанию
(CALCTYP, OBJID, ITEM_ID, WH_ID) По возрастанию
(CALCTYP, OBJID) По убыванию
(OBJID, ITEM_ID, WH_ID) по убыванию
(OBJID) По убыванию
Заранее спасибо
С уважением,
Reynaldi