预先分配extent减少插入时间
时间:2011-08-24
来源:互联网
预先分配extent减少插入时间
======================
--在aa表空间中创建空表
[email=an@DB10]an@DB10[/email]> create table a_ob1 tablespace aa as select * from an_objects where 1=2;
表已创建。
--清除内存,减少干扰因素
[email=an@DB10]an@DB10[/email]> set timing on
[email=an@DB10]an@DB10[/email]> alter system flush buffer_cache;
系统已更改。
已用时间: 00: 00: 04.50
[email=an@DB10]an@DB10[/email]> alter system flush shared_pool;
系统已更改。
已用时间: 00: 00: 02.43
--插入数据,用时46.71秒
[email=an@DB10]an@DB10[/email]> insert into a_ob1 select * from an_objects;
已创建800736行。
已用时间: 00: 00: 46.71
[email=an@DB10]an@DB10[/email]> commit;
提交完成。
已用时间: 00: 00: 00.01
--确认表空间使用情况
[email=an@DB10]an@DB10[/email]> SET WRAP OFF
[email=an@DB10]an@DB10[/email]> SET LINESIZE 158
[email=an@DB10]an@DB10[/email]> COL ts_name FOR A30
[email=an@DB10]an@DB10[/email]> select * from(
2 SELECT
3 dtp.tablespace_name ts_name,
4 NVL(ts.bytes,0)/1024/1024 size_m,
5 NVL(ts.bytes - NVL(f.bytes,0),0)/1024/1024 used_m,
6 ROUND((NVL(ts.bytes - NVL(f.bytes,0),0) /NVL(ts.bytes,0)*100),2) used
7 FROM
8 sys.DBA_TABLESPACES dtp,
9 (SELECT tablespace_name,SUM(bytes) bytes FROM DBA_DATA_FILES GROUP BY tablespace_name) ts,
10 (SELECT tablespace_name,SUM(bytes) bytes FROM DBA_FREE_SPACE GROUP BY tablespace_name) f
11 WHERE dtp.tablespace_name = ts.tablespace_name(+) AND
12 dtp.tablespace_name = f.tablespace_name(+)
13 AND NOT (dtp.CONTENTS LIKE 'TEMPORARY')
14 UNION ALL
15 SELECT
16 dtp.tablespace_name ts_name,
17 NVL(a.bytes,0)/1024/1024 size_m,
18 NVL(t.bytes,0)/1024/1024 used_m,
19 ROUND(NVL(t.bytes,0)/NVL(a.bytes,0)*100,2) used
20 FROM
21 sys.DBA_TABLESPACES dtp,
22 (SELECT tablespace_name,SUM(bytes) bytes FROM DBA_TEMP_FILES GROUP BY tablespace_name) a,
23 (SELECT ss.tablespace_name ,SUM((ss.used_blocks*ts.blocksize)) bytes FROM gv$sort_segment ss,sys.ts$ ts WHERE
blespace_name) t
24 WHERE dtp.tablespace_name = a.tablespace_name (+) AND
25 dtp.tablespace_name = t.tablespace_name (+) AND
26 dtp.CONTENTS LIKE 'TEMPORARY') pp
27 order by pp.used desc
28 ;
TS_NAME SIZE_M USED_M USED
------------------------------ ---------- ---------- ----------
SYSAUX 250 250 100
AA 176.0625 176.0625 100
SYSTEM 480 476.0625 99.18
USERS 437.5 414.5 94.74
UNDOTBS1 200 174 87
A_5 10 .0625 .63
TEMP 20 0 0
已选择7行。
--创建第二个测试表
已用时间: 00: 00: 00.21
[email=an@DB10]an@DB10[/email]> create table a_ob2 tablespace aa as select * from an_objects where 1=2;
表已创建。
--清除内存中数据,减少干扰因素
已用时间: 00: 00: 00.82
[email=an@DB10]an@DB10[/email]> alter system flush buffer_cache;
系统已更改。
已用时间: 00: 00: 06.67
[email=an@DB10]an@DB10[/email]> alter system flush shared_pool;
系统已更改。
--预分配100m的段空间
已用时间: 00: 00: 00.00
[email=an@DB10]an@DB10[/email]> alter table a_ob2 allocate extent (size 100m);
表已更改。
--插入数据,耗时15.71秒
已用时间: 00: 00: 10.48
[email=an@DB10]an@DB10[/email]> insert into a_ob2 select * from an_objects;
已创建800736行。
已用时间: 00: 00: 15.71
通过预分配空间减少了数据插入的时间消耗
======================
--在aa表空间中创建空表
[email=an@DB10]an@DB10[/email]> create table a_ob1 tablespace aa as select * from an_objects where 1=2;
表已创建。
--清除内存,减少干扰因素
[email=an@DB10]an@DB10[/email]> set timing on
[email=an@DB10]an@DB10[/email]> alter system flush buffer_cache;
系统已更改。
已用时间: 00: 00: 04.50
[email=an@DB10]an@DB10[/email]> alter system flush shared_pool;
系统已更改。
已用时间: 00: 00: 02.43
--插入数据,用时46.71秒
[email=an@DB10]an@DB10[/email]> insert into a_ob1 select * from an_objects;
已创建800736行。
已用时间: 00: 00: 46.71
[email=an@DB10]an@DB10[/email]> commit;
提交完成。
已用时间: 00: 00: 00.01
--确认表空间使用情况
[email=an@DB10]an@DB10[/email]> SET WRAP OFF
[email=an@DB10]an@DB10[/email]> SET LINESIZE 158
[email=an@DB10]an@DB10[/email]> COL ts_name FOR A30
[email=an@DB10]an@DB10[/email]> select * from(
2 SELECT
3 dtp.tablespace_name ts_name,
4 NVL(ts.bytes,0)/1024/1024 size_m,
5 NVL(ts.bytes - NVL(f.bytes,0),0)/1024/1024 used_m,
6 ROUND((NVL(ts.bytes - NVL(f.bytes,0),0) /NVL(ts.bytes,0)*100),2) used
7 FROM
8 sys.DBA_TABLESPACES dtp,
9 (SELECT tablespace_name,SUM(bytes) bytes FROM DBA_DATA_FILES GROUP BY tablespace_name) ts,
10 (SELECT tablespace_name,SUM(bytes) bytes FROM DBA_FREE_SPACE GROUP BY tablespace_name) f
11 WHERE dtp.tablespace_name = ts.tablespace_name(+) AND
12 dtp.tablespace_name = f.tablespace_name(+)
13 AND NOT (dtp.CONTENTS LIKE 'TEMPORARY')
14 UNION ALL
15 SELECT
16 dtp.tablespace_name ts_name,
17 NVL(a.bytes,0)/1024/1024 size_m,
18 NVL(t.bytes,0)/1024/1024 used_m,
19 ROUND(NVL(t.bytes,0)/NVL(a.bytes,0)*100,2) used
20 FROM
21 sys.DBA_TABLESPACES dtp,
22 (SELECT tablespace_name,SUM(bytes) bytes FROM DBA_TEMP_FILES GROUP BY tablespace_name) a,
23 (SELECT ss.tablespace_name ,SUM((ss.used_blocks*ts.blocksize)) bytes FROM gv$sort_segment ss,sys.ts$ ts WHERE
blespace_name) t
24 WHERE dtp.tablespace_name = a.tablespace_name (+) AND
25 dtp.tablespace_name = t.tablespace_name (+) AND
26 dtp.CONTENTS LIKE 'TEMPORARY') pp
27 order by pp.used desc
28 ;
TS_NAME SIZE_M USED_M USED
------------------------------ ---------- ---------- ----------
SYSAUX 250 250 100
AA 176.0625 176.0625 100
SYSTEM 480 476.0625 99.18
USERS 437.5 414.5 94.74
UNDOTBS1 200 174 87
A_5 10 .0625 .63
TEMP 20 0 0
已选择7行。
--创建第二个测试表
已用时间: 00: 00: 00.21
[email=an@DB10]an@DB10[/email]> create table a_ob2 tablespace aa as select * from an_objects where 1=2;
表已创建。
--清除内存中数据,减少干扰因素
已用时间: 00: 00: 00.82
[email=an@DB10]an@DB10[/email]> alter system flush buffer_cache;
系统已更改。
已用时间: 00: 00: 06.67
[email=an@DB10]an@DB10[/email]> alter system flush shared_pool;
系统已更改。
--预分配100m的段空间
已用时间: 00: 00: 00.00
[email=an@DB10]an@DB10[/email]> alter table a_ob2 allocate extent (size 100m);
表已更改。
--插入数据,耗时15.71秒
已用时间: 00: 00: 10.48
[email=an@DB10]an@DB10[/email]> insert into a_ob2 select * from an_objects;
已创建800736行。
已用时间: 00: 00: 15.71
通过预分配空间减少了数据插入的时间消耗
作者: 安佰胜 发布时间: 2011-08-24
alter table a_ob2 allocate extent (size 100m);
这步花了多少时间?也要计算进去的
这步花了多少时间?也要计算进去的
作者: bluemoon0083 发布时间: 2011-09-06
说的好~还有就是每次插入的数据有多少MB你如何准备估计呢?
作者: iori809 发布时间: 2011-09-06
100M?如果是1G可能效果会更明显。
作者: 我上面有人 发布时间: 2011-09-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28