oracle的表空间是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle的表空间是啥相关的知识,希望对你有一定的参考价值。
刚接触oracle不知道表空间到底是什么意思
创建用户的时候为什么要指定表空间 有什么意义??
是不是就类似sqlserver的数据库???
数据库里面装表?
这数据文件是个什么???
Oracle数据库中至少存在一个表空间,即SYSTEM的表空间。
表空间设计注意事项:
第一步:建立表空间。
在设计数据库的时候,首先需要设计表空间。需要考虑,是只建立一个表空间,还是需要建立多个表空间,以及各个表空间的存放位置、磁盘限额等等。
到底设计多少个表空间合理,没有统一的说法,这主要根据企业的实际需求去判断。如企业需要对用户进行磁盘限额控制的,则就需要根据用户的数量来设置表空间。当企业的数据容量比较大,而其又对数据库的性能有比较高的要求时,就需要根据不同类型的数据,设置不同的表空间,以提高其输入输出性能。
第二步:建立用户,并制定用户的默认表空间。
在建立用户的时候,建议数据库管理员要指定用户的默认表空间。因为在利用CREATE语句创建数据库对象,如数据库表的时候,其默认是存储在数据库的当前默认空间。若不指定用户默认表空间的话,则用户每次创建数据库对象的时候,都要指定表空间,这不是很合理。
另外要注意,不同的表空间有不同的权限控制。用户对于表空间A具有完全控制权限,可能对于表空间B就只有查询权限,甚至连连接的权限的都没有。所以,合理为用户配置表空间的访问权限,也是提高数据库安全性的一个方法。 参考技术A Oracle数据库经过长时间的发展,很多用户都很了解Oracle用户表空间了,这里我发表一下个人理解,和大家讨论讨论。SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。
Oracle表空间之基本概念
ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个Oracle,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。
每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。SYSTEM表空间必须总要保持联机,因为其包含着数据库运行所要求的基本信息(关于整个数据库的数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表)。
一个小型应用的ORACLE数据库通常仅包括SYSTEM表空间,然而一个稍大型应用的ORACLE数据库采用多个表空间会对数据库的使用带来更大的方便。
Oracle表空间之作用
表空间的作用能帮助DBA用户完成以下工作:
1.决定数据库实体的空间分配;
2.设置数据库用户的空间份额;
3.控制数据库部分数据的可用性;
4.分布数据于不同的设备之间以改善性能;
5.备份和恢复数据。
用户创建其数据库实体时其必须于给定的表空间中具有相应的权力,所以对一个用户来
说,其要操纵一个ORACLE数据库中的数据,应该:
1.被授予关于一个或多个表空间中的RESOURCE特权;
2.被指定缺省表空间;
3.被分配指定表空间的存储空间使用份额;
4.被指定缺省临时段表空间。
编辑本段控制Oracle用户表空间配额
在一些大型的数据库应用中,我们需要控制某个用户或者某一组用户其所占用的磁盘空间。这就好像在文件服务器中,需要为每个用户设置磁盘配额一样,以防止硬盘空间耗竭。所以,在数据库中,我们也需要限制用户所可以使用的磁盘空间大小。为了达到这个目的,我们就可以通过表空间来实现。
我们可以在Oracle数据库中,建立不同的表空间,为其设置最大的存储容量,然后把用户归属于这个表空间。如此的话,这个用户的存储容量,就受到这个表空间大小的限制。当然,表空间的优势还不仅仅这些,企业对于数据库的性能要求越高,或者数据库容量越大,则表空间的优势就会越大。 参考技术B 在一个房间里面这个房间可以存储很多箱子,箱子里面可以存储物品! 表空间可以看成房间 箱子可以看成数据文件 物品可以看成表。 用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面。
表空间是一个虚拟的概念可以无限大,但是需要由数据文件作为载体。本回答被提问者采纳 参考技术C 一个表空间对会应一个文件
如果同一个数据库下 有成百上千个表,
放在一个表空间,就相当于数据都放一个文件里,这个文件会很大
分成十个表空间,可放不同目录十个文件 参考技术D 你可以先把它想象成文件夹,以后用户的所有操作必须在这个文件夹下进行,比如创建一个excel文件,文件就保存在这个文件下。慢慢的,你就更能明白表空间的意思的。
oracle数据库创建自动增长的表空间语句怎么写?
要创建个JYDB的表空间,最初大小为5G,空间满了每次自动增长1G,最好能设置剩余10%空间自动增长。
按磁盘剩余空间的10%自动增长,这个实现不了。 如果表空间设置为自动增长,在空间不足的情况下Oracle系统会自动增长表空间的,但是也不会超过磁盘的总空间大小。 创建表空间的语法如下:create tablespace jydbdatafile 'XXX\XXX\xx.dbf' --这里数据文件的路径你自己视情况定size 5120Mautoextend onnext 1024Mextent management local --这里设置表空间为本地管理 参考技术Acreate tablespace news_tablespace datafile 'c:\\SmartDB01.ora' size 500M;
设置表空间自动增长
ALTER DATABASE DATAFILE 'c:\\SmartDB01.ora' AUTOEXTEND ON;//打开自动增长ALTER DATABASE DATAFILE 'c:\\SmartDB01.ora' AUTOEXTEND ON NEXT 200M ;//每次自动增长200m
ALTER DATABASE DATAFILE 'c:\\SmartDB01.ora' AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自动增长200m,数据表最大不超过1G 参考技术B CREATE SMALLFILE TABLESPACE "表空间名称" DATAFILE '表空间保存的路径' SIZE 20M AUTOEXTEND ON NEXT 20K MAXSIZE UNLIMITED NOLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT NOCOMPRESS; 参考技术C create tablespace "JYDB" logging datafile 'd:\oracle\oradata\JYDB.dbf' size 5000M autoextend on next 1000M maxsize unlimited extent management local segment space management auto; 参考技术D create tablespace JYDB datafile 'path' SIZE 5000M AUTOEXTEND ON NEXT 1024M
MAXSIZE UNLIMITED MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
以上是关于oracle的表空间是啥的主要内容,如果未能解决你的问题,请参考以下文章