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)昇順(POSTDATE、OBJID)昇順(POSTDATE、OBJID)降順
表Bのインデックス(mm_itrgdt)
(HEADER_ID)Ascending(ITEM_ID)Ascending(WH_ID)Ascending(LOT_NO)Ascending(SERIAL_NO、ITEM_ID)Ascending(HEADER_ID、ITEM_ID、WH_ID、SERIAL_NO、LOT_NO)Ascending(HEADER_ID、ITEM_ID、WH_ID)Ascending(HEADER_ID、ITEM_ID、WH_ID)Ascending( 、WH_ID)昇順(CALCTYP、OBJID、ITEM_ID、WH_ID)昇順(CALCTYP、OBJID)降順(OBJID、ITEM_ID、WH_ID)降順(OBJID)降順
前もって感謝します
よろしく、レイナルディ