SELECT SUB_JOB_ID FROM VEQS.COMPARISON_MATCH
WHERE SUB_JOB_ID IN ('f051ec4b2aca45438a495fda04afa630',
'18a2b2c9fadc4f0aaef1028b7aa92bef',
'fa7d9658913d49dd8987c28b7f85e9d7',
'780ba816ea0a43cab63701a8b18cd1a5',
'863323266d454e78853d2444f5491ea0',
'e4113e68d2bd45fd969d8d39329d1d5a',
'9afc35dce72642d4946a8b402f6a2965',
'a78646aba9d04dfd99004c2768c856e4',
'90fa35050c114a42b4de287c78599f05',
'4b9331d1204542a9907dd547d6d13180')
AND IS_DELETED = 0
不加最后一句AND IS_DELETED = 0,查询耗时40毫秒
加上最后一句AND IS_DELETED = 0,查询耗时为7秒
总数据量为400万,SUB_JOB_ID有普通索引
请各位大佬解答一下
语句返回多少记录啊,很少的话指定HINT走索引回表试试
SELECT /*+INDEX(t,IND_COMPARISON_MATCH_SUB_JOB_ID)*/ SUB_JOB_ID FROM VEQS.COMPARISON_MATCH t
WHERE SUB_JOB_ID IN ('f051ec4b2aca45438a495fda04afa630',
'18a2b2c9fadc4f0aaef1028b7aa92bef',
'fa7d9658913d49dd8987c28b7f85e9d7',
'780ba816ea0a43cab63701a8b18cd1a5',
'863323266d454e78853d2444f5491ea0',
'e4113e68d2bd45fd969d8d39329d1d5a',
'9afc35dce72642d4946a8b402f6a2965',
'a78646aba9d04dfd99004c2768c856e4',
'90fa35050c114a42b4de287c78599f05',
'4b9331d1204542a9907dd547d6d13180')
AND IS_DELETED = 0
效率不上来的话,就考虑(SUB_JOB_ID,IS_DELETEED)组合索引吧
复合索引的效果。
说明sub_job_id 选择性好
贴一下执行计划,搞个组合索引试试