加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle:在没有索引的表中识别重复项

发布时间:2020-12-12 15:12:12 所属栏目:百科 来源:网络整理
导读:当我尝试在大型表上创建唯一索引时,我得到一个独特的约束错误.在这种情况下,唯一索引是4列的复合键. 是否有一种有效的方法来识别除以下之外的重复项: select col1,col2,col3,col4,count(*)from Table1group by col1,col4having count(*) 1 上面的解释计划显
当我尝试在大型表上创建唯一索引时,我得到一个独特的约束错误.在这种情况下,唯一索引是4列的复合键.

是否有一种有效的方法来识别除以下之外的重复项:

select col1,col2,col3,col4,count(*)
from Table1
group by col1,col4
having count(*) > 1

上面的解释计划显示了具有极高成本的全表扫描,并且只想找到是否有其他方法.

谢谢 !

首先尝试在这四列上创建一个非唯一索引.这将花费O(n log n)时间,但也将减少执行选择到O(n log n)所需的时间.

你在这里有点绑定 – 无论你怎样切片,整个表必须至少读一次.天真算法在O(n2)时间内运行,除非查询优化器足够聪明以构建临时索引/表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读