本人在oracle 数据库上select * from 8888 a,9999 b where 条件11,条件22 等等用了90秒,但是我在建立了一个空表ddd ,然后插入数据.
insert into ddd
select * from 8888 a,9999 b where 条件11,条件22 确半天不出来。涉及的数据有11万。关联的表当然也不止以上两个,只是做个案例,查询起来需要的时间并不多,但是同样的脚本,当进行插入数据的时候,却迟迟不出结果(1个小时没有动静),我尝试了create table ggg as select * from 8888 a,9999 b where 条件11,条件22 ;
这个耗时也不多,也为90秒。请各位高手指点一下,为什么同样的脚本,当查询和建表的时候,耗时很小。但是insert的时候,耗时那么久。如何解决这个问题。谢谢!!!!
insert into ddd
select * from 8888 a,9999 b where 条件11,条件22 确半天不出来。涉及的数据有11万。关联的表当然也不止以上两个,只是做个案例,查询起来需要的时间并不多,但是同样的脚本,当进行插入数据的时候,却迟迟不出结果(1个小时没有动静),我尝试了create table ggg as select * from 8888 a,9999 b where 条件11,条件22 ;
这个耗时也不多,也为90秒。请各位高手指点一下,为什么同样的脚本,当查询和建表的时候,耗时很小。但是insert的时候,耗时那么久。如何解决这个问题。谢谢!!!!
解决方案 »
- 连接错误:ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
- 还是分组小计的sql问题,请指点...
- insert into 語句執行不成功,找找原因,謝謝了
- 怎样修改oracle数据库的优化模式
- 写 sql语句时,一定要 "select * from 用户.表名" 这样吗?
- oracle 服务启动 制作bat文件
- 在Oracle10g中,对一个分区过的表做分析,结果。。。。。
- Oracle 怎么查询哪个表中包含某字符串
- 急啊!那位兄弟来帮我解决一下!谢谢了!
- 如何插入“&”
- oracle 10g 连接mysql数据库
- ORACLE解锁表
as
select * from 8888 a,9999 b where 条件11,条件22
最好呢 用字段名 代替 *
create table as 是批量写入
你看下 你的undo表空间 和 temp 表空间 足够大吗?
可以试着 用insert into selelect 1000 次 commit 一次或者用 sqlloader 批量导入
在unix下操作,还要写控制文件。
我是用于存储过程,定时任务。原来不选择drop表和建表这个方式,担心数据碎片太多,影响性能,所以才选择insert ,
truncate的模式。本人学习不久,很多东西不是很清楚。不过还是谢谢各位的点拨。