minus和唯一索引的关系?

jayli426 2008-06-06 11:43:48


现在需要对两个表做minus操作

但是在网上看到这样一句话
"
真要做minus时,看看此表是否有唯一索引,有唯一索引好办些,没唯一索引时,处理大数据量时可能跑不出来
"

这是什么原因呢?

oracle会自动根据索引来查询数据,这个没有问题
问题是如果我在一个表上建立多个索引就会比单个索引慢吗?

实在是不理解这个东动啊

哪位老大指导一下啊
...全文
82 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenqingyu 2008-06-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 jayli426 的帖子:]


现在需要对两个表做minus操作

但是在网上看到这样一句话
"
真要做minus时,看看此表是否有唯一索引,有唯一索引好办些,没唯一索引时,处理大数据量时可能跑不出来
"

这是什么原因呢?

oracle会自动根据索引来查询数据,这个没有问题
问题是如果我在一个表上建立多个索引就会比单个索引慢吗?

实在是不理解这个东动啊

哪位老大指导一下啊
[/Quote]


LZ是理解错'唯一'的意思了...
'唯一'是指这个索引的值唯一,不是指只有一个索引.
xmach 2008-06-23
  • 打赏
  • 举报
回复
作Minus操作时需要消耗大量临时表空间.
如果有索引,可以先按索引排序(此时没有访问table),筛选出数据后按Rowid访问Table.减少临时表空间消耗
minmin_god 2008-06-06
  • 打赏
  • 举报
回复
select * from table1
where col1=''
and col2=''

当你在字段col1,col2上建索引的时候,你的查询
速度就会提高很多
其实说白了,索引就是对你的WHERE条件中的条件起作用
flg_inwind 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 jayli426 的帖子:]
oracle会自动根据索引来查询数据,这个没有问题
问题是如果我在一个表上建立多个索引就会比单个索引慢吗?
[/Quote]

看你的应用sql了。和索引的个数没的关系,是索引选择的字段与sql的使用条件有关系。
ps:minus一般用在数据量较小的操作,千万及其以上级别就尽量别用了。
tjinjie 2008-06-06
  • 打赏
  • 举报
回复
呵呵.
我在项目里面两个表(每个表大概是5-6千万的数据)做minus也可以跑出来...不会很慢.
不过项目里面的硬件很不错.....所以还没有出现过处理大数据量是跑不出来的问题.

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧