Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2833958
  • 博文数量: 200
  • 博客积分: 2413
  • 博客等级: 大尉
  • 技术积分: 3067
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-01 22:07
文章分类

全部博文(200)

文章存档

2018年(2)

2017年(8)

2016年(35)

2015年(14)

2014年(20)

2013年(24)

2012年(53)

2011年(44)

分类: Oracle

2011-05-11 21:04:39

表空间和数据文件的关系
表空间是逻辑概念,数据文件是逻辑概念;一个表空间对应一个或者多个数据文件。
 
实验目的:
 1。练习创建表空间和将表空间设为可扩展表空间
 2。感悟数据文件只会自动增长但是不会自动减小。
 3。得知表空间中有数据不能resize数据文件的大小;要想resize数据文件,那么表空间中必须没有数据。
 
红色字体的观点是错误的,关于正确观点在这里有写http://blog.chinaunix.net/space.php?uid=23284114&do=blog&id=311329
 
实验步骤:
1。创建一个不支持扩展的表空间t11
conn / as sysdba
create tablespace t11 datafile '/u01/test01/t11.dbf' size 6m;
 
2.在这个表空间上创建表test
conn scott/tiger
create table test tablespace t11 as select * from emp;
 
3.然后往表里插数据,一直到表空间满为止。
conn scott/tiger
insert into test select * from test;
----t11表空间已满,且不能扩展----
ERROR at line 1:
ORA-01653: unable to extend table SCOTT.TEST by 128 in tablespace T11
4.然后将表空间变成可扩展,继续向表里插数据
conn / as sysdba
alter database datafile '/u01/test01/t11.dbf' autoextend on next 5m maxsize 1g;
conn scott/tiger
insert into test select * from test;
 
观察表空间包含的数据文件的增长;
5.1M 05-10 23:04 t11.dbf
15M 05-10 23:10 t11.dbf

5.删掉表
conn scott/tiger
drop table test
发现表空间所在数据文件大小不变
 
purge recyclebin;    
发现表空间所在数据文件大小依然没有变化。这说明数据文件只能自动增长,但是不能自动减小;

6.通过resize手动缩小数据文件的大小。
alter databaes datafile '/u01/test01/t11.dbf' resize 5m;
 
================================
至于表空间中有数据怎么来压缩数据文件的大小,目前还没有研究出来;研究出来后会贴在这里。
 
阅读(5734) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~