我现在有两个表A,B;我想把B表的age记录放在A表的age中,两个表的number相同,我写的程序是
update a set age=(select age from b where b.number=a.number)
我建了两个表测试都成功了的,可是正式运行时我等了一天都没反映,提示都是"正在执行",我的A,B两个表里都有200W条数据,会不会是数据太大了,请教各位高手该什么处理?
解决方案 »
- 求助:ORACLE 11G SQLPLUS网址怎么打不开 http://localhost:5560/isqlplus/
- 求助:ORA-12514: TNS: 监听程序无法识别链接描述符中的请求符号
- 高分求算法及语句,for循环问题
- 一个简单的问题!谢谢!
- 为什么ORACLE数据库连接时断时开
- 怎样才能建一个数据库,并在里面建上自己的表?
- 上次去一家外企面试的SQL题,没写出来,请写SQL语句的高手请进来看看这个复杂查询怎么写!?
- Oracle中有没有拒绝权限呀.
- ORACLE回滚段的建立
- ORACLE高手请留步,请问在OCI中怎么调用自己定义的函数如。。。
- Pro*C/C++访问嵌套表的问题
- 一个关于日期的触发器该怎么写?
还有如果运行了一天没有反映,检查一下Oracle
的alert文件,看看两张表所属表空间的变化情况,实在不行,考虑把表按照Number大小进行分段Update。
运行snap package看看出来的Report.
有两个表A,B;把B表的age记录放在A表的age中,两个表的number相同,
Oracle statspack有很多介绍
那就是200W 次b的全表scan了 update a set age=(select age from b where b.number=a.number)
建议看一下oracle的session管理,看是否有表被锁住,
或者是前几次执行的时候没有rollback,造成回滚段不够用
----------------
是在服务器端执行的,自己机器CPU是零也不奇怪吧?