16、表空间 创建表空间

create [smallfile/bigfile]tablespace tablespace_name --smallfile/bigfile大文件表空间,小文件表空间(默认)tablespace_name 表空间名称
datafile '/path/filename' size [k/m] reuse,['/path/filename' size [k/m] reuse] --数据文件路径,size 大小,reuse 如果文件存在则清除重建,如果不存在则创建
[autoextend [on|off] next [k/m] ]--文件是否自动扩展,如果是自动扩展则确定next值。
[maxsize [unlimited] /[k/m] ]--如果是自动扩展,允许文件扩展的最大字节数,如果是unlimited关键字,则不需要指定长度。
[minimun extent] --指定最小长度,由操作系统以及数据块决定
[online/offline]--指定表空间创建时是在线或是离线。
[logging/nologging]--指定表空间加载时是否产生日志,默认为logging ,即使设置为nologging 在进行insert update delete 时仍会将操作信息记录到 redo log buffer 中。
[parmanent/temporary] --指定为永久表空间还是临时表空间,默认永久。
[extent management dictionary|local [autoallocate|uniform size [k/m]]]--指定表空间的扩展方式,使用数据字典管理还是本地化管理,默认本地化,不推荐数据字典管理。 如果采用本地化管理,在表空间扩展时,指定每次扩展的大小是系统确定还是按照等同大小进行。若是等同大小,默认每次1MB.

本地化管理方式创建表空间
1、使用本地化的扩展管理功能(包含自动大小和同等大小),可以避免发生重复的空间管理操作。
2、本地化管理自动扩展(autoallocate)能够跟踪临近的自由空间,这样可以消除结合自由空间的麻烦。本地化的扩展大小可以由系统自动决定(autoallocate),也可以选择所有扩展同样的大小(uniform).通常使用entent management local 子句创建本地化的可变表空间。

--本地化管理方式(local),创建表空间,扩展同等大小256k
create tablespace tbs_test_1 datafile 'D:\OracleFiles\oracleData\datafile1.dbf'
 size 10m 
 extent management local unfiorm size 256k;
--本地化管理方式(local),创建表空间,扩展大小为自动管理
create tablespace tbs_test_2 datafile
 'D:\OracleFiles\oracleData\datafile1.dbf ' 
 size 10m
 entent management local autoallocate;

段空间管理方式创建表空间
基于本地化管理,使用segment space management manual/local 语句,段空间管理又分为手工段,自动段管理方式。
自动段空间管理方式比手工段管理方式具有更好的性能。
注意:1.自动段管理方式不能用于创建临时表空间和系统表空间。
2.Oracle 推荐使用自动段管理自动表空间,但默认是manual手工管理方式,在创建时要指定为 auto。

--本地化管理方式(local),创建表空间,段空间管理方式为手工
create tablespace tbs_test_3 datafile 'D:\OracleFiles\oracleData\datafile3.dbf'
 size 10m 
 extent management local autoallocate
 segment space management manual;
--本地化管理方式(local),创建表空间,段空间管理方式为自动
create tablespace tbs_test_4 datafile 'D:\OracleFiles\oracleData\datafile4.dbf'
 size 10m 
 extent management local autoallocate
 segment space management auto;

创建大文件表空间 create bigfile tablespace …
大文件表空间只有一个数据文件,因此在需要重置大小时不需要标识数据文件的具体路径和名称。
注意:创建表空间的语法使用 size 标识数据文件大小,修改时使用resize

--修改大文件表空间,将其大小由2G改1G
alter tablespace tbs_test_big resize 1g;
--修改传统表空间改变其大小。
alter database datafile 'D:\OracleFiles\OracleData\datafile3.dbf'
resize 100m;

临时表空间

--将临时表空间tmp1 设置为默认临时表空间。
alter database default tempoary tablespace temp1;
--将表空间tbs_example设置为默认永久表空间
alter database default tablespace tbs_example;

更改表空间的状态
设置表空间为只读状态可以保证表空间数据的完整性。
1.该表空间必须为online 状态
2.该表空间不能包含任何回滚段
3.该表空间不能在归档模式下

--修改表空间为只读
alter tablespace tbs_test_3 read only;
--修改表空间为可读写状态
alter tablespace tbs_test_3 read write;

重命名表空间

alter tablespace tbs_test_3 rename to tbs_test_3_new;

删除表空间

drop tablespace tbs_name[including contents][cascade constraints]
--including contents 表示删除表空间的同时,删除表空间中的数据,
--cascade constraints 表示删除当前表空间时,也删除相关完整性限制。

向表空间中添加数据文件

alter tablespace users add datafile 'e:\....\user02.bdf'
size 10m 
autoextend on next 5m maxsize unlimited;

表空间中删除数据文件

alter tablespace users drop datafile 'e:\...\.bdf';

临时表空间是一个磁盘空间,该空间在排序操作完成之后由oracle 系统自动释放。
临时表空间主要用于临时段,临时段是由数据库根据需要创建,管理,删除的,这些临时段通常与排序之类的操作有关,一下操作会常用到临时表空间

  • select distinct 不重复检索
  • union 联合查询
  • minus 计算
  • analyze 分析
  • 连接2个没有索引的表
--创建临时表空间
create temporary tablespace temp_01 tempfile 'd:\OracleFiles\TempFiles\temp01.tpf'
size 300m;
--设置系统默认临时表空间
alter database default temporary tablespace  temp_01;
--查询临时表空间信息,dba_temp_files
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页