创建具有最优性能的表空间

原创 2016年08月30日 17:25:02

问题:表空间是存储数据库对象的逻辑容器,在创建对象时不指定存储特性,则会继承表空间的存储特性,因此应如何创建可维护最优化的表空间


解决方案:

创建的表空间应具有如下特性(如果可以选择):

1、本地管理

2、ASSM(automatic segment space management),自动段空间管理

使用下面的语句创建:

create tablespace tools
  datafile 'D:\oradata\o11r2\tool01.dbf'
  size 100m
  extent management local
  uniform size 128k
  segment space management auto
/

自11gr2起,extent management directory已被废弃

通过extent management local启用本地管理的表空间,如果system是本地管理的,那之后将不允许创建字典管理的表空间

通过segment space management auto启用ASSM

通过uniform size子句,设置每一次扩展都是同样的大小。也可以声明成autoallocate,这样oracle每次就会按照64k,1m,8m,64m扩展空间,如果表空间内对象大小不固定,那么最好是自动分配


工作原理:

oracle 11gr2之前可以使用字典管理的表空间,这种管理方式使用数据字典管理空间,当表和索引的扩展频繁时需要频繁更新数据字典,管理性能差

本地管理的表空间在每个数据文件使用一个位图管理对象扩展和空闲空间,效率较高

本地表空间管理+ASSM使很多空间方面的设置被废弃

在本地管理的表空间中,下面的参数不再生效:

next

pctincrease

minextents

maxextents

default

使用ASSM,下面的参数不用在手工设置:

pctused

freelists

freelist groups

与auto对应的是manual,manual需要手工设置上面的参数

通过下面的sql查看表空间和段空间的管理方式:

select tablespace_name,segment_space_management,extent_management from dba_tablespaces;

不能对system表空间使用ASSM,ASSM也仅对永久的本地管理表空间生效。

可以配置数据文件自动增长,配置了自动增长建议也配置数据文件最大值

size 1G autoextend on maxsize 10G

创建的表空间可以是smallfile或者bigfile,区别是后者只能有一个数据文件(10g之前只能用smallfile),8k的数据块大小可以创建32T的数据文件,使用下面的sql语句创建:

create bigfile tablespace tools_bf
  datafile 'D:\oradata\o11r2\tool_bf01.dbf'
  size 100m
  extent management local
  uniform size 128k
  segment space management auto
/

select tablespace_name,bigfile from dba_tablespaces;

默认创建的是smallfile表空间

数据库默认的表空间是smallfile表空间,如果想更改为bigfile表空间

1、创建数据库时使用:set default bigfile tablespace进行设置

2、之后更改:alter database set default bigfile tablespace;


设置创建的表空间默认是smallfile还是bigfile

alter database set default bigfile tablespace;

alter database set default smallfile tablespace;


设置数据库用户的默认表空间

alter database default tablespace users;

版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle 临时表空间过大问题解决-性能调优

查询数据库服务器时,发现数据库服务器磁盘使用空间达到了98%,分析总共的数据文件也不可能达到如此大,经过查询发现原来临时表空间的使用情况达到了 32G,导致磁盘空间使用紧张。搜索了相应的文档与资料后,...

不要让临时表空间影响数据库性能

一般Oracle数据库(Oracle Database)可以分为两部分,即实例(Instance)和数据库(Database)。 实例:是一个非固定的、基于内存的基本进程与内存结构。当服务器关闭后,实...

Oracle不要让临时表空间影响Oracle数据库性能

不要让临时表空间影响Oracle数据库性能 Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用...

表空间对应文件的AUTOEXTEND ON NEXT指定的值对性能的影响

创建表空间的时候指定的数据文件可以设为自动扩展,以及每次扩展多少容量,如果发现在大数据量插入的时候非常慢,可能的原因是NEXT指定的值太小. 下面来模拟一下这个过程: 1,创建一个表空间: CR...
  • kkdelta
  • kkdelta
  • 2012年08月30日 14:50
  • 5859

Oracle的学习四:数据库管理员、逻辑备份与恢复、数据字典、动态性能视图、管理表空间与数据文件

1.数据库管理员 职责: 1.安装和升级Oracle数据库 2.建库、表空间、表、视图、索引 3.指定并实施备份与恢复计划 4.数据库权限管理、调优、故障排除 ...

不要让临时表空间影响数据库性能

在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序...

不要让临时表空间影响Oracle数据库性能

在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序...

oracle数据库创建表空间和用户

  • 2017年11月07日 22:05
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建具有最优性能的表空间
举报原因:
原因补充:

(最多只允许输入30个字)