oracle为什么要创建一个表空间和临时表空间?
RT```小弟初学,以前一直用sqlserver。搞不明白表空间,数据表,数据库这几个概念在oracle里面是什么关系啊...
RT```
小弟初学,以前一直用sqlserver。
搞不明白 表空间,数据表,数据库 这几个概念在oracle里面是什么关系啊 展开
小弟初学,以前一直用sqlserver。
搞不明白 表空间,数据表,数据库 这几个概念在oracle里面是什么关系啊 展开
7个回答
展开全部
临时表空间用来进行一些运算和索引创建等,多数使用完会自动清理,而表空间是正常数据物理存储的永久空间,两者的用途不同,为了更好的管理所以区分开来创建。
临时表空间主要用途是在数据库进行CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等操作时用到,当运算完成之后系统会自动清理。
永久表空间则是真正用来进行正常数据存储的实际物理存储区域。
扩展资料
oracle表空间的类型:
1、永久性表空间:一般保存表、视图、过程和索引等的数据。
2、临时性表空间:只用于保存系统中短期活动的数据。
3、撤销表空间:用来帮助回退未提交的事务数据。
Oracle表空间的作用:
1、决定数据库实体的空间分配;
2、设置数据库用户的空间份额;
3、控制数据库部分数据的可用性;
4、分布数据于不同的设备之间以改善性能;
5、备份和恢复数据。
展开全部
oracle 数据库就是指的oracle 整体,一般一个机器上只安装一个oracle数据库
oracle建立好以后,实际上oracle是一个一个的DBF文件,然后N个DBF文件组成一个表空间
你的表就建立在表空间下,比如我举个例子:
一个数据库叫jack,
jack下用户使用的表空间有3个: users , abc, jacc
其中
users由d:\1.dbf组成
abc由d:\11.dbf d:\22.dbf组成
jacc 由 d:\jacc.dbf组成
你建的表可以选择放在这3个表空间的任意一个里(如果不写,就放在你这个用户的默认表空间里,一般都是users,这个表空间是系统自己建立的)
临时表空间你也可以用,但是只能将临时表放在里面,临时表空间主要放置一些临时数据,比如你查询一个复杂的sql语句,系统会将中间数据放在临时表空间里暂存
临时表空间会自己删除(可以选择会话结束就删除)
不知道我说明白了没,有问题欢迎继续追问
oracle建立好以后,实际上oracle是一个一个的DBF文件,然后N个DBF文件组成一个表空间
你的表就建立在表空间下,比如我举个例子:
一个数据库叫jack,
jack下用户使用的表空间有3个: users , abc, jacc
其中
users由d:\1.dbf组成
abc由d:\11.dbf d:\22.dbf组成
jacc 由 d:\jacc.dbf组成
你建的表可以选择放在这3个表空间的任意一个里(如果不写,就放在你这个用户的默认表空间里,一般都是users,这个表空间是系统自己建立的)
临时表空间你也可以用,但是只能将临时表放在里面,临时表空间主要放置一些临时数据,比如你查询一个复杂的sql语句,系统会将中间数据放在临时表空间里暂存
临时表空间会自己删除(可以选择会话结束就删除)
不知道我说明白了没,有问题欢迎继续追问
追问
首先先谢谢您的热心解答。
我在系统默认的数据库文件夹里面看到了几种文件(比如.ctl,.dbf等)
我听我朋友说oracle是先读取.ctl然后读dbf然后读日志(好像是这样,不知道记错没)
请问oracle这个控制文件.ctl到底是做什么用的呢?
追答
你这个问题,就涉及到Oracle的启动机制了,如果你没有看过书的,我给你你讲起来也不太容易,简单说几句,
oracle启动的时候,读取ctl文件(叫控制文件),这个控制文件里记录的内容告诉oracle目前这个数据库都是由哪些dbf组成的。然后读取所有的dbf文件,看这些dbf文件的最后修改时间是否和控制文件中记录的一样(同事还要比对日志文件中记录的最后修改时间),如果这些文件的最后修改时间都一致,那么说明oracle上次关闭是正常的,假如不一致,则利用日志文件重现之前的操作(日志文件里记录oracle的所有操作),最终时所有类型的文件的最后修改时间一致,然后打开,相信你已经看出来了,如果ctl文件坏了的话,你的数据实际上全都无法读取,因为oracle已经不知道自己的结构了。因此oracle默认将控制文件复制3份保存,足见其重要性。
因为估计你没有看过书,所以我用了浅显易懂的词来描述,他们在oracle中应该叫:
最后修改时间: SCN(System Change Number)
日志文件:redo log(可能还涉及到Archive 归档文件)
重现操作:roll forward (前滚)(实际上发生SCN不一致时需要进行恢复,在前滚后还要回滚,以后再说)
以上,请您参考
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表空间:此空间是用来进行数据存储的(表、function、存储过程等),所以是实际物理存储区域。
临时表空间:主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、管理索引[如创建索 引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。
备注:因为用途不同所以才有了区分,实际上数据库都是有默认临时空间的,但实际应用中很难满足需求,所以才需要自己创建临时空间。
临时表空间:主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、管理索引[如创建索 引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。
备注:因为用途不同所以才有了区分,实际上数据库都是有默认临时空间的,但实际应用中很难满足需求,所以才需要自己创建临时空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
打个比方吧:
你住进某个社区(村)的某栋楼的一个房间里.
那个社区(村)就是数据库,先要划一块地皮(空间)用来建楼,那块地皮就是表空间,一块皮上(空间)可以建多栋楼,一栋楼就是一个数据表,你就是那数据.
临时表空间:
在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据,会使用临时表空间.你就将它当成电脑的虚拟内存.
其它的慢慢看书吧.
你住进某个社区(村)的某栋楼的一个房间里.
那个社区(村)就是数据库,先要划一块地皮(空间)用来建楼,那块地皮就是表空间,一块皮上(空间)可以建多栋楼,一栋楼就是一个数据表,你就是那数据.
临时表空间:
在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据,会使用临时表空间.你就将它当成电脑的虚拟内存.
其它的慢慢看书吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我开始也搞不清楚这几个东东,现在有个初步的认识了,个人觉得没必要纠结于这些概念,纠结的时间越长越容易止步不前,该建数据库时建数据库,改建表的时候建表,等到表空间用完就添加表空间(此时不要纠结表空间是什么,不足的时候只管按照例子添加就是),慢慢的慢慢的就会顿悟了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询