现在需要对两个表做minus操作但是在网上看到这样一句话
"
真要做minus时,看看此表是否有唯一索引,有唯一索引好办些,没唯一索引时,处理大数据量时可能跑不出来
"这是什么原因呢?oracle会自动根据索引来查询数据,这个没有问题
问题是如果我在一个表上建立多个索引就会比单个索引慢吗?实在是不理解这个东动啊哪位老大指导一下啊

解决方案 »

  1.   

    呵呵.
    我在项目里面两个表(每个表大概是5-6千万的数据)做minus也可以跑出来...不会很慢.
    不过项目里面的硬件很不错.....所以还没有出现过处理大数据量是跑不出来的问题.
      

  2.   


    看你的应用sql了。和索引的个数没的关系,是索引选择的字段与sql的使用条件有关系。
    ps:minus一般用在数据量较小的操作,千万及其以上级别就尽量别用了。
      

  3.   

    select * from table1
    where col1=''
    and col2=''当你在字段col1,col2上建索引的时候,你的查询
    速度就会提高很多
    其实说白了,索引就是对你的WHERE条件中的条件起作用
      

  4.   

    作Minus操作时需要消耗大量临时表空间.
    如果有索引,可以先按索引排序(此时没有访问table),筛选出数据后按Rowid访问Table.减少临时表空间消耗