oracle10g 联合索引
小弟,最近工作遇到一个大表数据查询的问题(千万级)。因为以前没有用过oracle所以现在很头疼,从该表中查询数据需要10分钟左右的时间(代码是前辈写的,数据库没有使用索引)。为了提高查询的效率现在需要对这个数据表建立一些索引,但是有些迷茫。希望各位高手指导一下,大表索引应该怎么建立比较合适!
两张表:A(大表)、B(小表)、C(小表)
查询语句如下:select a.id,
b.name,
c.name,
a.date,
a.txnid,
a.pan,
a.bankname,
a.cardtype,
a.panin
where a.id=b.id
and a.id=c.id
and a.txnid=?
and a.date >? and a.date <?
上面就是大概的查询语句,需要在A表中建立索引。请各位高手指导一下,怎么建立索引才能提高查询速度,谢谢
------解决方案--------------------A的 id,txnid,date , B的id ,C的id
date比较用>=和<=
建好后再看执行计划进一步优化
------解决方案--------------------如果id是唯一的,就建唯一索引,不唯一的列就建普通索引