楼主: stone10

删除重复行SQL优化

[复制链接]
论坛徽章:
314
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
11#
发表于 2005-3-18 13:55 | 只看该作者
ALTER TABLE work.zbxsrsz  ADD CONSTRAINT UNIQUE zbxsrsz_key (xr_bm,xr_jyrq,xr_jh,xr_xh)
indexing tablespace TS_NAME EXCEPTION INTO exception_table.

然后根据exception_table的记录查询后决定是否删除这些重复的记录。

使用道具 举报

回复
论坛徽章:
31
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:09:23
12#
发表于 2005-3-18 13:57 | 只看该作者
最初由 ZALBB 发布
[B]ALTER TABLE work.zbxsrsz  ADD CONSTRAINT UNIQUE zbxsrsz_key (xr_bm,xr_jyrq,xr_jh,xr_xh)
indexing tablespace TS_NAME EXCEPTION INTO exception_table.

然后根据exception_table的记录查询后决定是否删除这些重复的记录。 [/B]


这也是个很不错的方法
楼主也可以试试
不过过程稍微麻烦了点

使用道具 举报

回复
论坛徽章:
31
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:09:23
13#
发表于 2005-3-18 13:59 | 只看该作者
最初由 stone10 发布
[B]非常感谢!
我也看了很多人写的,为什么老是用rowid呢!
问一下斑竹,我写的SQL跟你说的SQL两者比较起来,速度差大不大啊? [/B]


要比较快慢
把2条语句的SQL执行计划先看下了
比较下就出来了

使用道具 举报

回复
论坛徽章:
1
14#
 楼主| 发表于 2005-3-18 13:59 | 只看该作者
优化无极限!挑战优化极限!

使用道具 举报

回复
论坛徽章:
31
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:09:23
15#
发表于 2005-3-18 14:00 | 只看该作者
最初由 stone10 发布
[B]优化无极限!挑战优化极限! [/B]


记得把你解决问题的全过程记录下来
与大家分享哦
呵呵

使用道具 举报

回复
论坛徽章:
1
16#
 楼主| 发表于 2005-3-18 14:03 | 只看该作者
那看来结果要我到时候来公布了!
看谁的方案好,到时候大家可别忘了给那个提最优方案的人一点掌声哦!
哈哈。。。。

使用道具 举报

回复
论坛徽章:
1
17#
 楼主| 发表于 2005-3-18 14:27 | 只看该作者
还在运行!太慢了!看来还不如手工删除了!
关注。。。。。

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2005-3-18 14:52 | 只看该作者
根据我的经验,删除冗余数据和重复数据,最快的是用rank()函数,可以达到50万行记录(5000条冗余记录)中删除5000条冗余数据用时不到一分钟!

使用道具 举报

回复
论坛徽章:
31
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:09:23
19#
发表于 2005-3-18 15:05 | 只看该作者
最初由 MingTian_0125 发布
[B]根据我的经验,删除冗余数据和重复数据,最快的是用rank()函数,可以达到50万行记录(5000条冗余记录)中删除5000条冗余数据用时不到一分钟! [/B]


把你的例子贴上来看看
我认为rank()对查出重复记录有效的
怎么能实现快速删除呢?

使用道具 举报

回复
论坛徽章:
131
2006年度最佳技术回答
日期:2007-01-24 12:58:48福特
日期:2013-10-24 13:57:422014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:142013年新春福章
日期:2013-02-25 14:51:24
20#
发表于 2005-3-18 15:09 | 只看该作者
ZALBB 的方法应该是最高效的。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表