8 个解决方案
#1
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
#2
假如表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;
#3
set autocommit 500000;
设置每隔50w条记录提交此次试试
设置每隔50w条记录提交此次试试
#4
使用更新肯定不行。你应该是新建表的方式。然后删除旧表把新表改名为旧表名就OK了。
#5
update table set b=a ;
#6
实现蒋字段A表数据更新到字段B表里来
恕我语文老师死的早,你是不是就一个表,想把所有B的值设置和A一样?如果记录太多的话,用2楼三楼的方式删除再加会比较好
恕我语文老师死的早,你是不是就一个表,想把所有B的值设置和A一样?如果记录太多的话,用2楼三楼的方式删除再加会比较好
#7
这种方法比更新要快的多,推荐
不过需要注意两点
1. 不要直接 drop test 表,可先 rename test to test2;
2. rename test1 to test;以后,需要检查一下你的应用环境是否有失效对象,失效对象需要重编译一下
不过需要注意两点
1. 不要直接 drop test 表,可先 rename test to test2;
2. rename test1 to test;以后,需要检查一下你的应用环境是否有失效对象,失效对象需要重编译一下
#8
2楼就挺好的。。
#1
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
#2
假如表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;
#3
set autocommit 500000;
设置每隔50w条记录提交此次试试
设置每隔50w条记录提交此次试试
#4
使用更新肯定不行。你应该是新建表的方式。然后删除旧表把新表改名为旧表名就OK了。
#5
update table set b=a ;
#6
实现蒋字段A表数据更新到字段B表里来
恕我语文老师死的早,你是不是就一个表,想把所有B的值设置和A一样?如果记录太多的话,用2楼三楼的方式删除再加会比较好
恕我语文老师死的早,你是不是就一个表,想把所有B的值设置和A一样?如果记录太多的话,用2楼三楼的方式删除再加会比较好
#7
这种方法比更新要快的多,推荐
不过需要注意两点
1. 不要直接 drop test 表,可先 rename test to test2;
2. rename test1 to test;以后,需要检查一下你的应用环境是否有失效对象,失效对象需要重编译一下
不过需要注意两点
1. 不要直接 drop test 表,可先 rename test to test2;
2. rename test1 to test;以后,需要检查一下你的应用环境是否有失效对象,失效对象需要重编译一下
#8
2楼就挺好的。。