创建表空间的时候指定的数据文件可以设为自动扩展,以及每次扩展多少容量,如果发现在大数据量插入的时候非常慢,可能的原因是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. JAVAWEB 一一 Hibernate(框架)

    实体类关联数据库字段,操作实体类,HQL语句对数据结构CRUD) 引入jar包 配置文件 hibernate.cfg.xml User.hbm.xml <?xml version="1 ...

  2. Android代码规范

    Android代码规范——文章来源<IT蓝豹>http://itlanbao.com/preview.aspx#1,0 [-]一Import的次序二缩进Indentation总则示例代码规 ...

  3. 利用原生态的(System.Web.Extensions)JavaScriptSerializer将mvc 前台提交到controller序列化复杂对象

    主要代码如下: public JsonResult Test() { string s = Request.Form.ToString(); JavaScriptSerializer jss = ne ...

  4. 初始C语言中的数组(男神翁凯老师MOOC)

    定义数组 ●<类型>变量名称[元素数量]; ● int grades[100]; ●double weight[20]; ●元素数量必须是整数 ●C99之前:元素数量必须是编译时刻确定的字 ...

  5. 网络传输中利用fastjson将复杂嵌套数据类型Json格式转换(GeoJsonPolygon)

    如果一个对象太复杂了,那么在网络传输键的JSON格式数据转换容易出问题. 比如下面一个类Area.java import lombok.AllArgsConstructor; import lombo ...

  6. js基础-类型转换

    显示类型转换 Number() 将任意类型转换数值类型 true 1 false 0 Number(null) => 0 Number(undefined) => NAN Number(' ...

  7. python安装与IO编程

    <python爬虫开发与项目实战>基础篇(一) 一.python安装 1.python IDLE 下载官网:www.python.org 注:在选择安装组件时勾选所有组件,特别注意勾选pi ...

  8. maven自动部署Tomcat错误排除

    转自:https://blog.csdn.net/wuha0/article/details/18658113 在Maven与Tomcat配合部署过程中,最常见的错误有三种,折腾了半天,终于找到三种错 ...

  9. Java LinkedList

    LinkedList是基于双向链表实现的,先看构造方法和方法 Constructor Summary Constructors Constructor Description LinkedList() ...

  10. 【scrapy】关于爬取的内容是Unicode编码

    自己练习爬取拉钩网信息的时候爬取的信息如下: {'jobClass': [u'\u9500\u552e\u52a9\u7406'], 'jobUrl': u'https://www.lagou.com ...