日期:2014-05-17  浏览次数:20701 次

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表中建立索引。请各位高手指导一下,怎么建立索引才能提高查询速度,谢谢
oracle10g 数据库 索引 oracle

------解决方案--------------------
A的 id,txnid,date , B的id  ,C的id
date比较用>=和<=   
建好后再看执行计划进一步优化
                
------解决方案--------------------
如果id是唯一的,就建唯一索引,不唯一的列就建普通索引