oracle从入门到精通科技光盘内容章创建表空间.pdf
创建表空间
本讲大纲:
1、创建表空间的语法
2、通过本地化管理方式创建表空间
3、通过段空间管理方式创建表空间
4、创建非标准块表空间
5、建立大文件表空间
支持:
创建表空间的语法
创建表空间的语法如下:
CREATE[SMALLFILE/BIGFILE]TABLESPACEtablespace_name
DATAFILE‘/path/filename’SIZEnum[k/m]REUSE
[,’/path/filename’SIZEnum[k/m]REUSE]
[,…]
[AUTOEXTEND[ON|OFF]NEXTnum[k/m]
[MAXSIZE[UNLIMITED|num[k/m]]]]
[MININUMEXTENTnum[k/m]]
[DEFAULTSTORAGEstorage]
[ONLINE|OFFLINE]
[LOGGING|NOLOGGING]
[PERMANENT|TEMPORARY]
[EXTENTMANAGEMENTDICTIONARY|LOCAL[AUTOALLOCATE
|UNIFORMSIZEnum[k/m]]]]
通过本地化管理方式创建表空间
本地化表空间管理使用位图表空间所对应的数据文件的自
由空间和块的使用状态,位图中的每个单元对应一个块或一组块。
当分配或释放一个扩展时,Oracle会改变位图的值以指示该快的状
态。这些位图值的改变不会产生回滚信息,因为它们不更新数据字
典的任何表。
通过段空间管理方式创建表空间
1.手工段空间管理方式
手工段空间管理方式是为了往后兼容而保留的,它使用自由块列表和
PCT_FREE与PCT_USED参数来标识可供操作使用的数据块。
在每个INSERT或UPDATE操作后,数据库都会比较该数据块中的剩余自
由空间与该段的PCT_FREE设置。如果数据块的剩余自由空间少于
PCT_FREE自由空间(也就是说剩余空间已经进入系统的下限设置),则数
据库就会从自由块列表上将其取下,不再对其进行操作。剩余的空余空
间保留给可能会增大该数据块中行大小的UPDATE操作。
2.自动段空间管理方式
如果采用自动段空间管理方式,那么数据库会使用位图而不是自由列表
来标识哪些数据块可以用于操作,哪些数据块需要从自由块列表上将其
取下。此时,表空间段的PCT_FREE和PCT_USED参数会被自动忽略。
创建非标准块表空间
在Oracle数据库中,通常的块大小为8192字节,即8KB,但Oracle
11g允许创建块大小与基本块不同的表空间,块大小可由创建表空间时的
blocksize参数指定,这样有利于不同大小的对象,但用户需要注意以
下三点:
1表空间的非标准块的大小为基本块的倍数。比如,大小为16KB,
64KB,128KB。
2Oracle11g通常使用SGA自动共享内存管理,因此需要设置初始化参
数db_16k_cache_size=16K。
3这种块较大的表空间通常用来存放大对象(LOB)类型。
建立大文件表空间
从Oracle11g版本开始,引进了一个新的表空间类型——大文件
(BIGFILE)。与以前版本的最多可由1022个文件组成的表空间不同;大文
件表空间存放在一个单一的数据文件中,并且它需要更大的磁盘容量来存放
数据;大文件表空间可以根据选择的块的大小变化,从32TB增至128TB。
大文件表空间是为超大型数据库而设计的。当一个超大型数据库具有上
千个读/写数据文件时,必须更新数据文件头部(比如检查点)的操作可能
会花费相当长的时间。如果降低数据文件的数量,那么,这些操作完成起来
就可能会快的多。创建一个大文件表空间,只需要在CREATE语句中使用
BIGFI