接刚才的插入2百万条数据的问题

[复制链接]
查看11 | 回复9 | 2005-11-2 13:35:57 | 显示全部楼层 |阅读模式
我也有一个大批量数据的插入的速度的问题(每月5-6次),但是与前面的那位仁兄不同的是,我要插入约十万条数据,但是插入前都要清空整个表,用delete会使表的高水位不会下降给下次插入带来慢的效率,但是truncate有不能会滚,我想问一下假如我用
delete删除以后用
insert /*+APPEND*/ into 做效率增加的时候是不是有空间的问题,因为 据我所知insert /*+APPEND*/ into在表的高水位上分配空间?
那么又有什么好的办法哪
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
1、10万数据量不大
2、要恢复你可以单独备份这个表再truncate啊。
3、delete高水位不下降哪里来的插入慢的效率问题呢?下降了你还要重新计算和分配空间,不是更慢?
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
3、delete高水位不下降哪里来的插入慢的效率问题呢?下降了你还要重新计算和分配空间,不是更慢?
在一般insert的时候是要检查表的高水位,然后在判断高水位下是否有可用的extent,多出一步检查当然会慢,而insert /*+APPEND*/ into
则直接从高水位开始增加数据 当然要快 这也是insert /*+APPEND*/ into快的原因吧
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
3、delete高水位不下降哪里来的插入慢的效率问题呢?下降了你还要重新计算和分配空间,不是更慢?
在一般insert的时候是要检查表的高水位,然后在判断高水位下是否有可用的extent,多出一步检查当然会慢,而insert /*+APPEND*/ into
则直接从高水位开始增加数据 当然要快 这也是insert /*+APPEND*/ into快的原因吧
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
用truncate table *** reuse storage吧
REUSE STORAGE Specify REUSE STORAGE to retain the space from the deleted rows
allocated to the table or cluster. Storage values are not reset to the values when the
table or cluster was created. This space can subsequently be used only by new data in
the table or cluster resulting from insert or update operations. This clause leaves
storage parameters at their current settings.
If you have specified more than one free list for the object you are truncating, then the
REUSE STORAGE clause also removes any mapping of free lists to instances and resets
the high-water mark to the beginning of the first extent.
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
最初由 foxcpu 发布
[B]3、delete高水位不下降哪里来的插入慢的效率问题呢?下降了你还要重新计算和分配空间,不是更慢?
在一般insert的时候是要检查表的高水位,然后在判断高水位下是否有可用的extent,多出一步检查当然会慢,而insert /*+APPEND*/ into
则直接从高水位开始增加数据 当然要快 这也是insert /*+APPEND*/ into快的原因吧 [/B]

归档模式下,直接APPEND,测试下看看会不会快呢?偶觉得不会快多少,append能够快是因为少写了redo日志,而不是直接在高水位上插入的问题
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
最初由 zhang41082 发布
[B]
归档模式下,直接APPEND,测试下看看会不会快呢?偶觉得不会快多少,append能够快是因为少写了redo日志,而不是直接在高水位上插入的问题 [/B]

我记得用APPEND是在高水位上插入的。
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
最初由 cjf107 发布
[B]
我记得用APPEND是在高水位上插入的。 [/B]

呵呵,我没说不是插入到高水位之上啊。我是说插入高水位之上并不是快的主要原因。插入高水位之上,确实会减少在现有segment中查找空闲的空间的时间,但是这个时间节省的应该很小的。主要节省还是在少写了N多的日志
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
对,主要是少写日志。
回复

使用道具 举报

千问 | 2005-11-2 13:35:57 | 显示全部楼层
这才是主要原因.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行