Oracle关于表空间的一些常用语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Liveor_Die/article/details/81120526

表空间

Oracle 11g 默认的表空间及其说明

表 空 间 说 明
EXAMPLE 如果安装时选择“实例方案”,则此表空间存放各样例的数据
SYSAUX SYSTEM 表空间的辅助空间。主要用于存储除数据字典外的其他数据对象,这样可以减少 SYSTEM表空间的负荷
SYSTEM 存放数据字典,包括表、视图、存储过程的定义等
TEMP 存放 SQL 语句处理的表和索引的信息,比如,数据排序就占用此空间
UNDOTBS1 存放撤销数据的表空间
USERS 通常用于存放“应用系统”所使用的数据库对象

查询

  • 1.查询表空间 dba_data_files

select tablespace_name,file_name,bytes from dba_data_files order by tablespace_name;

  • 2.查询 GKFXB 表空间内存放的数据对象及其类型和拥有者

select segment_type,segment_name,owner from dba_segments where tablespace_name='GKFXB';

  • 3.查询 SYSAUX 表空间所存放的用户及其所拥有的对象数量

select owner as 用户,count(segment_name) as 对象数量 from dba_segments where tablespace_name='SYSAUX' group by owner;

  • 4.查询系统的临时表空间信息,包括临时文件、空间大小和空间名称

select file_name,bytes,tablespace_name from dba_temp_files;

创建表空间

  • 语法
CREATE [SMALLFILE/BIGFILE] TABLESPACE tablespace_name
DATAFILE ‘/path/filename’ SIZE num[k/m] REUSE
[,/path/filename’ SIZE num[k/m] REUSE]
[,]
[AUTOEXTEND [ON | OFF] NEXT num[k/m]
[MAXSIZE num[k/m] | UNLIMITED]
[MININUM EXTENT num[k/m]]
[DEFAULT STORAGE storage]
[ONLINE | OFFLINE]
[LOGGING | NOLOGGING]
[PERMANENT | TEMPORARY]
[EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM SIZE num[k/m]]]
  • 1.创建一个大小为 10MB 的表空间,其扩展大小为 256K
create tablespace tbs_test_1 datafile 'D:\OracleFiles\OracleData\datafile1.dbf'
size 10m    -- 初始大小
extent management local uniform size 256K;  --EXTENT MANAGEMENT DICTIONARY | LOCAL:指定表空间的扩展方式是使用数据字典管理还是本地化管理,默认为本地化管理。
  • 2.创建一个大小为 10MB 的表空间,其扩展大小为自动管理
create tablespace tbs_test_2 datafile 'D:\OracleFiles\OracleData\datafile2.dbf'
size 10m
extent management local autoallocate;
  • 3.创建一个表空间,其扩展大小为自动管理,其段空间管理方式为手动
create tablespace tbs_test_3 datafile 'D:\OracleFiles\OracleData\datafile3.dbf'
size 20m
extent management local autoallocate
segment space management manual;
  • 4.创建一个大小为 20MB 的表空间,其扩展大小为自动管理,其段空间管理方式为自动
create tablespace tbs_test_4 datafile 'D:\OracleFiles\OracleData\datafile4.dbf'
size 20m
extent management local autoallocate
segment space management auto;
    1. 创建一个临时表空间,空间大小为 300MB
create temporary tablespace temp_01 tempfile 'D:\OracleFiles\tempfiles\temp_01.tpf' size 300m;

表空间的操作

在 Oracle 数据库中创建用户(使用 CREATE USER 语句)时,如果不指定表空间,则默认的临时
表空间是 TEMP,默认的永久表空间是 SYSTEM,这样就导致应用系统与 Oracle 系统竞争使用 SYSTEM
表空间,会极大地影响 Oracle 系统的执行效率。

  • 1.表空间 tbs_example 设置为默认的永久表空间

alter database default tablespace tbs_example

  • 2.将临时表空间 temp_1 设置为默认的临时表空间

alter database default temprory tablespace temp_1

  • 3.修改 tbs_test_3 表空间为只读状态

alter tablespace tbs_test_3 read only;

  • 4.修改 tbs_test_3 表空间为可读写状态

alter tablespace tbs_test_3 read write;

  • 5.把 tbs_test_3 表空间重命名为 tbs_test_3_new

alter tablespace tbs_test_3 rename to tbs_test_3_new;

  • 6.把数据文件 datafile3.dbf(其所属的表空间是 tbs_test_3)的大小由原来的 20MB 修改为 100MB

alter database datafile 'D:\OracleFiles\OracleData\datafile3.dbf'RESIZE 100m;

  • 7.删除表空间 tbs_test_2 及其包含的所有内容
drop tablespace tbs_test_1
including contents
cascade constraints;

猜你喜欢

转载自blog.csdn.net/Liveor_Die/article/details/81120526