首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

一个sql语句优化有关问题

2012-03-03 
一个sql语句优化问题有三个表 A1、A2、A3A1表:CHELXHHAOPHM ....1苏A120012苏A23883A2和A3表结构一样,A2表:G

一个sql语句优化问题
有三个表 A1、A2、A3
A1表:
CHELXH HAOPHM ....
1 苏A12001
2 苏A23883
A2和A3表结构一样,A2表:
GUIFEIXH CHELXH PIAOJHM .....
1 1 G91348
2 1 G64182
3 2 G31294
4 34 G28411
.........................

A3现在是空表,要求把A2表中CHELXH字段数据在A1表中存在的数据存到A3中,用
Insert Into A3 SELECT *  
FROM A2 where CHELXH in (select CHELXH from A1) 应该可以。但是现在A1、A2表中数据量很大,执行这条语句花费时间太长,请问怎么优化比较好呢?


[解决办法]
改写为
Insert Into A3 SELECT A2.* from A2,A1 where A2.CHELXH=A1.CHELXH;
试试。最好先对三个表做分析,然后查看上面SQL的执行计划。

[解决办法]
A1和A2,CHELXH列上有index吗?
A3表有约束吗?先disable,insert完成后再放开.

热点排行