Oracle表空间介绍
来源:互联网 发布:域名服务器ip查询 编辑:程序博客网 时间:2024/05/16 04:04
Oracle培训教程:表空间,在数据库系统中,存储空间是较为重要的资源,合理利用空间,不但能节省空间,还可以提高系统的效率和工作性能。Oracle可以存放海量数据,所有数据都在数据文件中存储。而数据文件大小受操作系统限制,并且过大的数据文件对数据的存取性能影响非常大。同时Oracle是跨平台的数据库,Oracle数据可以轻松的在不同平台上移植,那么如何才能提供统一存取格式的大容量呢?Oracle采用表空间来解决。
表空间只是一个逻辑概念,若干操作系统文件(文件可以不是很大)可以组成一个表空间。表空间统一管理空间中的数据文件,一个数据文件只能属于一个表空间。一个数据库空间由若干个表空间组成。如图所示:
图1 数据空间、表空间和数据文件
Oracle中所有的数据(包括系统数据),全部保存在表空间中,常见的表空间有:
·系统表空间:存放系统数据,系统表空间在数据库创建时创建。表空间名称为SYSTEM。存放数据字典和视图以及数据库结构等重要系统数据信息,在运行时如果SYSTEM空间不足,对数据库影响会比较大,虽然在系统运行过程中可以通过命令扩充空间,但还是会影响数据库的性能,因此有必要在创建数据库时适当的把数据文件设置大一些。
·TMEP表空间:临时表空间,安装数据库时创建,可以在运行时通过命令增大临时表空间。临时表空间的重要作用是数据排序。比如当用户执行了诸如Order by等命令后,服务器需要对所选取数据进行排序,如果数据很大,内存的排序区可能装不下太大数据,就需要把一些中间的排序结果写在硬盘的临时表空间中。
·用户表自定义空间:用户可以通过CREATE TABLESPACE命令创建表空间。
创建表空间需要考虑数据库对分区(Extent,一个Oracle分区是数据库文件中一段连续的空间,Oracle分区是Oracle管理中最小的单位)的管理,比如当一个表创建后先申请一个分区,在Insert执行过程中,如果分区数据已满,需要重新申请另外的分区。如果一个数据库中的分区大小不一,创建表空间时需要考虑一系列问题。因此在Oracle8i之后,创建表空间都推荐使用“本地管理表空间”,这种表空间中的分区是一个固定大小的值,创建表空间的语法是:
语法结构:创建表空间
CREATE TABLESPACE 空间名称
DATAFILE '文件名1' SIZE 数字M
[,'文件名2' SIZE 数字….]
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 数字M
语法解析:
1. 文件名包括完整路径和文件名,每个数据文件定义了文件的初始大小,初始大小一般以“M”为单位。一个表空间中可以有多个数据文件。
2. EXTENT MANAGEMENT LOCAL指明表空间类型是:本地管理表空间。本地管理表空间要求Oracle中的数据分区(Extent)大小统一。
3. UNIFORM SIZE:指定每个分区的统一大小。
案例5:创建一个表空间,包含两个数据文件大小分别是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 /
Tablespace created
必须是管理员用户才能创建表空间,当表空间的空间不足时可以使用ALTER TABLESPACE命令向表空间中追加数据文件扩充表空间。
代码演示:扩充表空间
SQL> ALTER TABLESPACE MYSPACE
2 ADD DATAFILE 'D:/C.ORA' SIZE 10M
3 /
Tablespace altered
表空间可以在不使用时删除,使用DROP 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 EXAMNO 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
表和索引一旦创建,表空间无法修改。
来源:北京Oracle认证
- Oracle 表空间介绍
- ORACLE表空间介绍
- Oracle表空间介绍
- Oracle Undo表空间介绍
- oracle 体系结构 ----基本表空间介绍
- oracle表空间操作简单介绍
- Oracle表空间的一些介绍
- oracle 创建表空间详细介绍
- oracle 创建表空间详细介绍
- 移动Oracle数据库的表空间方法介绍
- 移动Oracle数据库的表空间方法介绍
- Oracle中imp导入数据指定表空间方法介绍
- ORACLE 传输表空间介绍与实验操作
- java操作oracle空间信息介绍(SDE)
- java操作oracle空间信息介绍(SDE)
- java操作oracle空间信息介绍
- Oracle Spacial(空间数据库)SDO_GEOMETRY介绍
- SYSAUX 表空间介绍
- Java Web元素自适应
- StoryBoard 视图切换和传值
- 用多个StoryBoard构建工程
- python 实现四则运算(一)
- Storyboard 自定义转场动画
- Oracle表空间介绍
- iOS截屏( UIView,UITableView,UICollectionView,UIWebView)
- UITableViewCell嵌套UIWebView
- iOS近场通信(蓝牙开发,WiFi开发)
- Xcode各版本官方下载链接
- ScrollView与WebView结合使用时,设置webview字体大小的时候出现下方留白解决方案
- UIWebView替代品WKWebView的使用及js交互
- 理解MySQL——架构与概念
- 用js解析经json序列化后的C#的DateTime类型数据