创建表空间的时候指定的数据文件可以设为自动扩展,以及每次扩展多少容量,如果发现在大数据量插入的时候非常慢,可能的原因是NEXT指定的值太小.
下面来模拟一下这个过程:
1,创建一个表空间:
CREATE TABLESPACE "T" DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\T.DBF' SIZE 5M
默认的话是不自动扩展的:
SQL> select file_id, tablespace_name,autoextensible, increment_by
  2  from dba_data_files where tablespace_name='T';
   FILE_ID TABLESPACE_NAME                AUT INCREMENT_BY
---------- ------------------------------ --- ------------
         8 T                              NO             0
2,如果插入的数据超过5M,会出错
SQL>  create table largeinsert tablespace t as select * from dba_objects;
 create table largeinsert tablespace t as select * from dba_objects                                                        *
ERROR at line 1:
ORA-01652: unable to extend temp segment by 128 in tablespace T
3,将表空间修改为自动扩展:
SQL> alter database datafile 8 autoextend on;
Database altered.
SQL> select file_id, tablespace_name,autoextensible, increment_by
  2  from dba_data_files where tablespace_name='T';

FILE_ID TABLESPACE_NAME                AUT INCREMENT_BY
---------- ------------------------------ --- ------------
         8 T                              YES            1
默认每次扩展是1个byte,这对于大数据量插入是很慢的.
14:41:00 SQL> create table largeinsert tablespace t as select * from dba_objects;
Table created.
14:41:04 SQL>
14:41:18 SQL> insert into largeinsert select * from largeinsert;
51017 rows created.
14:41:26 SQL> insert into largeinsert select * from largeinsert;
102034 rows created.
14:41:34 SQL> insert into largeinsert select * from largeinsert;
204068 rows created.
14:41:59 SQL>
14:42:13 SQL> insert into largeinsert select * from largeinsert;
408136 rows created.
14:42:44 SQL>
在另一种情况下,可以发现将每次扩展的容量设置为较大的值,性能会有提升.
CREATE TABLESPACE "T2" DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\T2.DBF' 
SIZE 50M  autoextend on next 20M
SQL> select file_id, tablespace_name,autoextensible, increment_by
  2  from dba_data_files where tablespace_name='T2';
   FILE_ID TABLESPACE_NAME                AUT INCREMENT_BY
---------- ------------------------------ --- ------------
         9 T2                             YES         2560
14:45:07 SQL> create table largeinsert2 tablespace t2 as select * from dba_objects;
Table created.
14:45:11 SQL>
14:45:14 SQL>
14:45:26 SQL> insert into largeinsert2 select * from largeinsert2;
51018 rows created.
14:45:28 SQL> insert into largeinsert2 select * from largeinsert2;
102036 rows created.
14:45:35 SQL> insert into largeinsert2 select * from largeinsert2;
204072 rows created.
14:45:40 SQL> insert into largeinsert2 select * from largeinsert2;
408144 rows created.
14:46:08 SQL>(这一次也会有多次的20M的扩展申请)

[z]表空间对应文件的AUTOEXTEND ON NEXT指定的值对性能的影响的更多相关文章

  1. [Oracle]System 表空间的文件丢失

    如果system 表空间的文件丢失,假设有备份的情况,可以恢复.数据库需要设置为mount 状态,然后restore/recover datafile 模拟实验: SQL> select nam ...

  2. Oracle数据库表空间 数据文件 用户 以及表创建的SQL代码

    --create the tablespace CREATE SMALLFILE TABLESPACE "TABLE_CONTAINER" --创建表空间 DATAFILE 'E: ...

  3. rac下asm管理的表空间-数据文件的重命名

    asm下表空间的重命名与普通文件系统下的表空间重命名原理是一样的,只不过asm管理的数据文件有一些需要注意的地方,另外在asm下操作数据文件需要格外小心,稍有不慎将会造成数据文件丢失,如可以做备份最好 ...

  4. oracle 表空间 数据文件 表的关系

    数据文件是表空间的容器,增加数据文件是增大表空间的容量,而不是往表空间里添加数据因此数据文件肯定能添加,如果表空间用完了,再添加新的数据就会报错你可以这样理解,数据库是一个箱子,表空间是箱子里的抽屉, ...

  5. oracle 11g数据库--创建表空间,创建用户,用户授权并指定表空间。

    使用环境:我们安装完数据库后,查看以下服务是否启动 需要建库.实质上我们是建立表空间,从而进行库的还原工作. 根据本例情况,是在下面目录下进行的操作. D:\app\Administrator\ora ...

  6. oracle查看表空间物理文件的名称,路径及大小

    select tablespace_name, file_id,file_name,round(bytes/(1024*1024),0) total_space from dba_data_files ...

  7. 【oracle】查看表空间对应文件所在位置

    select file_name , tablespace_name from dba_data_files;select * from dba_data_files;

  8. oracle 碎片管理和数据文件resize释放表空间和磁盘空间(以及sys.wri$_optstat_histgrm_history过大处理)

    随着互联网的快速发展,各行各业的数据量也是与日俱增,而数据库的数据量也是直线增长,但是,如果表DML太多,则可能会在高水位线以下出现太多空白. 因此,只能将数据文件缩小到高水位线,因为高水位线以下有一 ...

  9. DBA常用SQL之表空间与数据文件

    )), ) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name g ...

随机推荐

  1. ORACLE常用操作命令

    1.ORACLE实例启动.停止 SQL>startup;  #启动ORACLE实例 SQL>shutdown immediate; #关闭ORACLE实例,常用.阻止新用户连接且阻止已连接 ...

  2. [JS]如何理解JS中的类和对象

    -------------------------------------------------------------------------------------------- 变量:自由的 ...

  3. Ajax核心技术代码

    /* @author weichen */ var xhr = ''; function Ajax() { if(window.XMLHttpRequest) { var xhr = new XMLH ...

  4. 网络层——IP报文头介绍

    IP数据包也叫IP报文分组,传输在ISO网络7层结构中的网络层,它由IP报文头和IP报文用户数据组成,IP报文头的长度一般在20到60个字节之间,而一个IP分组的最大长度则不能超过65535个字节.  ...

  5. 命令行下IIS的配置脚本Adsutil.vbs

    命令行下IIS的配置脚本Adsutil.vbs 2009-08-20 12:26:52  www.hackbase.com  来源:Jackal's Blog Jackal's Blog文件存在于:C ...

  6. 消息中间件MQ详解及四大MQ比较

    一.消息中间件相关知识 1.概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段.它具有低耦合.可靠投递.广播.流量控制.最终一致性等一系列功能,成为异步RPC的主要手段之一.当今市面上有很多主流 ...

  7. linux中awk命令学习

    awk是一个强大的文本分析工具,awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. 通常获取某一行时,我们会使用 “grep 关键字“进行查找,但在读取某一列时, ...

  8. json转换工具类:json<===>list或者对象

    public class JsonTools { /** * POJO 转 JSON */ public static String createJsonString(Object object) { ...

  9. 四、API使用参考

    官方文档:https://docs.blender.org/api/blender_python_api_current/info_api_reference.html Blender有很多互连数据类 ...

  10. js常用返回网页顶部几种方法

    一.使用锚标记 此方法最简单,只需在body下放个隐藏的锚点标记,内容如下:  代码如下 复制代码 <a name="top" id="top">& ...