Oracle表空间
一、表空间?在数据库系统中,存储空间是较为重要的资源,合理利用空间,不但能节省空间,还可以提高系统的效率和工作性能。Oracle可以存放海量数据,所有数据都在数据文件中存储。而数据文件大小受操作系统限制,并且过大的数据文件对数据的存取性能影响非常大。同时Oracle是跨平台式的数据库,Oracle数据可以轻松的在不同平台上移植,那么如何才能提供统一存取格式的大容量呢?Oracle采取表空间来解决。 表空间只是一个逻辑概念,若干操作系统文件(文件可以不是很大)可以组成一个表空间。表空间统一管理空间中的数据文件,一个数据文件只能属于一个表空间。一个数据库空间由若干个表空间组成。如图所示:? Oracle中所有的数据(包括系统数据),全部保存在表空间中,常见的表空间有:
创建表空间需要考虑数据库对分区(Extent,一个Oracle分区是数据库文件中一段连续的空间,Oracle分区是Oracle管理中最小的单位)的管理,比如当一个表创建后先申请一个分区,在insert执行过程中,如果分区数据已满,需要重新申请另外的分区。如果一个数据库中的分区大小不一,创建表空间时需要考虑一系列问题。因此在Oracle8i之后,创建表空间都推荐使用“本地管理表空间”,这种表空间中的分区是一个固定大小的值,创建表空间的语法是: 语法结构:创建表空间: ? CREATE TABLESPACE空间名称 DATAFILE‘文件名1’SIZE数字M [‘文件名2’SIZE 数字……] EXTENT MANAGEMENT LOCAL UNIFORM SIZE 数字M ? 语法解析:
案例:创建一个表空间,包含两个数据文件大小分别是10MB,5MB,要求extent的大小统一问1M。 代码演示:创建表空间? ? SQL>CREATE TABLESPACE MYSPACE 2 ?DATAFILE ‘D:/A.ORA‘SIZE 10M, 3 ? ? ? ? ? ? ? ? ? ?‘D:/B.ORA‘SIZE 5M 4 ?EXTENT MANAGEMENT LOCAL? 5 ?UNIFORM SIZE 1M 6 ?/ Tablspace created ? 必须是管理员用户才能创建表空间,当表空间的空间不足时可以使用ALTER TABLESPACE命令向表中追加数据文件扩充表空间。 代码演示:扩充表空间?? ? SQL>CREATE USER ACONG IDENTIFIED BY ACONG? 2 DEFAULT TABLESPACE MYSPACE 3 ?/ User created ? 在创建表时,表中数据存放在用户的默认表空间中,也可以通过tablespace子句为表指定表中数据存放在其他表空间中。 代码演示:为表指定表空间 ? SQL>CREATE TABLE SCORES 2 ?( 3 ? ? ? ? ? ? ? ? ID NUMBER, 4 ? ? ? ? ? ? ? ?TERM VARCHAR2(2), 5 ? ? ? ? ? STUID VARCHAR2(7) NOT NULL, 6 ? ? ? ? ? EXAMND VARCHAR2(7) NOT NULL, 7 ? ? ? ? ? WRITTENSCORE NUMBER(4,1) NOT NULL, 8 ? ? ? ? ?LABSCORE ?NUMBER(4,1) NOT NULL 9 ?) 10 ? TABLESPACE MYSPACE 11 ?/ Table created ? 在创建用户之前需要创建表空间 创建表空间 ? ?创建索引时也可以为索引指定表空间。 代码演示:为索引指定表空间? ? SQL>CREATE INDEX UQ_ID ON SCORES(ID) 2 ?TABLESPACE MYSPACE; Index created ? 表和索引一旦创建,表空间无法修改。? CREATE SMALLFILE TABLESPACE "XZ_JCDL" ? 删除表空间 ? drop tablespace XZ_JCDL including contents and datafiles; ? 若报:表空间不存在,由于创建时表空间名加“”,创建用户应用时或删除表空间时,表空间名需加“” ? 二、练习在plsql工具中执行以下语句,可建立Oracle表空间。 ?/*分为四步 */ /*第1步:创建临时表空间? */ ? create temporary tablespace yuhang_temp?
? ---------------------------------------------------------------------------------- ?内容来源于网络, ---------------------------------------------------------------------------------- (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |