私のクエリ:
SELECT *
FROM t1, t2
WHERE (t1.ZID=t2.ZCHARACTERID AND t1.ZID IN (1,2,3,4) AND t2.Z_ENT=3)
ORDER BY t2.ZSTROKECOUNT
私の指標:
CREATE INDEX i1 on t1(ZID);
CREATE INDEX i2 on t2(ZCHARACTERID, Z_ENT, ZSTROKECOUNT);
クエリ プランの説明
selectid order from detail
---------- ---------- ---------- ----------------------------------------------------------------- --------------
0 0 1 SEARCH TABLE t1 USING INDEX i1 (ZID=?) (~740 rows)
0 0 0 EXECUTE LIST SUBQUERY 1
0 1 0 SEARCH TABLE t2 USING INDEX i2 (ZCHARACTERID=? AND Z_ENT=?) (~9 row)
0 0 0 USE TEMP B-TREE FOR ORDER BY
Explain クエリ プランの 3 行目から、2 つのインデックス付き列のみが使用され、一時 B ツリーが順序付けに使用されることが示されています。しかし、私が理解していることから、オーダーバイにも i2 を使用できるはずです。
何か見逃しましたか?ありがとう。