oracle 1千万数据量更新问题不会的不要乱说 。。

z273894270 2011-10-09 06:25:13
现在有个表 表中有两个字段 字段A 字段B 字段B是空值 实现蒋字段A表数据更新到字段B表里来 更新时间不能太久 已近试过update(select a,b from table)set b=a了 这样更新速度太慢了 1千万条的数据 几天都更新不玩 有什么好的解决方法 分批更新也可以 知道的回个贴 谢谢各位大神 。。。
...全文
990 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
litianci2002 2011-10-11
  • 打赏
  • 举报
回复
2楼就挺好的。。
lnuwhy 2011-10-10
  • 打赏
  • 举报
回复
update table set b=a ;
yangqm22 2011-10-10
  • 打赏
  • 举报
回复
使用更新肯定不行。你应该是新建表的方式。然后删除旧表把新表改名为旧表名就OK了。
opps_zhou 2011-10-10
  • 打赏
  • 举报
回复
这种方法比更新要快的多,推荐

不过需要注意两点
1. 不要直接 drop test 表,可先 rename test to test2;
2. rename test1 to test;以后,需要检查一下你的应用环境是否有失效对象,失效对象需要重编译一下

[Quote=引用 2 楼 lkz2004 的回复:]

假如表test中有a,b两个字段,而且数据有很多
可以这样更新,很快...
SQL code

create table test2
(
a ,
b
)
as select t.a,t.a from test t;

drop table test;
alter table test2 rename to test;
[/Quote]
wylsy1 2011-10-10
  • 打赏
  • 举报
回复
实现蒋字段A表数据更新到字段B表里来

恕我语文老师死的早,你是不是就一个表,想把所有B的值设置和A一样?如果记录太多的话,用2楼三楼的方式删除再加会比较好
无爱大叔 2011-10-10
  • 打赏
  • 举报
回复
set autocommit 500000;
设置每隔50w条记录提交此次试试
NLP爱好者 2011-10-09
  • 打赏
  • 举报
回复
假如表test中有a,b两个字段,而且数据有很多
可以这样更新,很快...

create table test2
(
a ,
b
)
as select t.a,t.a from test t;

drop table test;
alter table test2 rename to test;

Dave 2011-10-09
  • 打赏
  • 举报
回复


Oracle 利用 rowid 提升 update 性能
http://blog.csdn.net/tianlesoftware/article/details/6576156

这个例子我测试的是300w,4分钟。 另外bulk 也可以尝试。

Oracle 大规模 delete,update 操作 注意事项
http://blog.csdn.net/tianlesoftware/article/details/6567458

Oracle bulk 示例
http://blog.csdn.net/tianlesoftware/article/details/6599003


3,492

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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