高分求助:oracle 大表更新,大约200万,insert和update太慢,如何解决?

2025-03-24 01:08:04
推荐回答(5个)
回答1:

简单的看看搂主的描述 "需要从B表中一条一条去A表中核实"
我估计是用 游标来处理的。
如果用游标一行一行 FETCH , 性能可能要打点折扣。
这种情况下,可以尝试使用 BULK COLLECT 来批量加载。
下面是 Oracle 游标处理II - 使用BULK COLLECT 的例子。
http://hi.baidu.com/wangzhiqing999/blog/item/2ea041cc0d4606037e3e6f20.html

又看了一下逻辑, 要是存在的话,更新,没有的话就插入。
如果没有其他的复杂的逻辑的话,那么用 MERGE 语句,可以直接处理掉。
下面是 MERGE 的例子
http://hi.baidu.com/wangzhiqing999/blog/item/2879207af3e388370cd7da86.html

回答2:

写个存储过程,使用pl/sql MARGE INTO 方法

写法是这样的

  

详细访问百度问库:http://wenku.baidu.com/view/1308e0563c1ec5da50e27006.html

存储过程,你肯定会写,不会写就找我吧。我每天白天都在

回答3:

数据库 jsp页面
varchar32 String
int int
long long

不需要设置编码,只要保证页面和数据库都是utf-8就可以了,看看你的表中的字段类型,再对照着看看页面设置的类型,是否一致,问题就解决了!

回答4:

1. 先分步核实各动作消耗的时间, 确定缓慢原因
2. 如果是在A表中检索消耗的时间多, 则需要优化索引.
3. 如果是在插入的时间长, 需要优化系统配置, 系统优化关系方面太多, 无法在短篇内说明,
需要你去了解Oracle性能优化与操作系统优化的相关专著.

回答5:

建一个游标或者触发器可以解决查询慢的问题,然后根据索引获取要修改或要插入的数据,这样就快多了