user_segments和user_tables的区别?该怎么处理
发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
user_segments和user_tables的区别?
这2张数据字典都能查找到用户创建的表,它两有什么区别?
是user_tables只能查找到当前用户所有的table的信息,而user_segments是查询到当前用户所有的segment信息?
那我创建的临时表为什么在user_tables中能查找到,而在user_segments中找不到呢?
-------------------------------------------------------------------
segment到底应该怎么理解?老师说一张表就是一个segment,那segment还可以是索引,其他数据库对象等等。
------解决方案--------------------
我认为 一张表是一个segment 但是一个segment不一定只能是一张表
关于临时表在table中有 在segment中没有的问题 要看你的数据库是什么版本
11g中默认 只有插入数据时 才给表分配segment 为了节省资源 新建的空表不分配 当然也可以配置新建时分配
------解决方案--------------------
段(segment)是表空间中主要的组织结构,有很多种段,回滚段,临时段,索引段........
段分为区段,区段分为块,块是oracle中最小的空间分配单位,数据就存储在这里;
一个段中可以存放多个表的数据,比如几十行的小表;
一个表也可能占用多个段,比如数据量大的表,分区表;
------解决方案--------------------
创建Oracle 临时表,可以有两种类型的临时表:
会话级的Oracle临时表
事务级的临时表 。
1) 会话级的临时表因为这这个临时表中的数据和你的当前会话有关系,当你当前SESSION 不退出的情况下,临时表中的数据就还存在,而当你退出当前SESSION 的时候,临时表中的数据就全部没有了,当然这个时候你如果以另外一个SESSION 登陆的时候是看不到另外一个SESSION 中插入到临时表中的数据的。
即两个不同的SESSION 所插入的数据是互不相干的。当某一个SESSION 退出之后临时表中的数据就被截断(truncate table ,即数据清空)了。会话级的临时表创建方法:
1.Create Global Temporary Table Table_Name
2.(Col1 Type1,Col2 Type2...) On Commit Preserve Rows ;
举例:
1.create global temporary table Student
2.(Stu_id Number(5),
3.Class_id Number(5),
4.Stu_Name Varchar2(8),
5.Stu_Memo varchar2(200)) on Commit Preserve Rows ;
2) 事务级临时表是指该临时表与事务相关,当进行事务提交或者事务回滚的时候,Oracle临时表中的数据将自行被截断,其他的内容和会话级的临时表的一致(包括退出SESSION 的时候,事务级的临时表也会被自动截断)。事务级临时表的创建方法:
1.Create Global Temporary Table Table_Name
2.(Col1 Type1,Col2 Type2...) On Commit Delete Rows ;
举例:
1.create global temporary table Classes
2.(Class_id Number(5),
3.Class_Name Varchar2(8),
4.Class_Memo varchar2(200)) on Commit delete Rows ;
3) 两中类型临时表的区别
会话级临时表采用 on commit preserve rows ;而事务级则采用 on commit delete rows ;用法上,会话级别只有当会话结束临时表中的数据才会被截断,而且事务级临时表则不管是 commit 、 rollback 或者是会话结束,Oracle临时表中的数据都将被截断
------解决方案--------------------
user_tables 是当前用户下的表.
user_segments 是oracle对象存储的体现。
segment的类型很多,比如表、索引、分区表、簇等等。
正常来说,一个segment类型就分配一个对应的segment.
比如create table,同时又建个索引,那么就会存在两个segment.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
基于MATLAB实现的云模型计算隶属度
”云”或者’云滴‘是云模型的基本单元,所谓云是指在其论域上的一个分布...
-
在linux上安装oracle11G必须在图形界面才能安装吗?纯命令行下,安装linux时没有安装图形界面!
安装了redhat 6.3系统,但是安装系统是...
-
请教 primary key 使用 Varchar2 与 Char 差别有人知道吗 ?
从以前就有这个疑问,但碍于开 Table 的 KEY通常几乎都是有规则的,且固...
-
关于外键的建立问题
比如说我建立下面两个表
create table user(
id bigint(10) premary key auto_increment,
username varch...
-
PLSQL 新电脑装了 11g, 开启后找不到可以连接的资料库清单><?
旧电脑 Oracle Client → C:Oracle,这个我直接开 Pl/SQL 再登入帐...
-
我在aix 5.3 上创建oracle10g监听报错
Configuring Listener:LISTENER
ServiceAliasException: Could not save Service Alias: ...
-
ORACLE update 问题 新手求解答
有三张表A B C
B表的部分数据 复制给A
B表跟C表降序排列后假设他是一一对应的关系
现在想把...
-
存储过程执行报无效数字
存储过程
CREATE OR REPLACE PROCEDURE UpdatePiecesChn(pieceidStr in varchar2,
...
-
CE_现金银行总行分行设定详解(案例)
2014-07-14 Created By BaoXinjian
一、摘要
1. 设定银行总行
设定银行总行基本资料
设定银...
-
一个简单的报错,麻烦看看
函数如下,提示报错行 是: return str1;我实在搞不懂,麻烦指教一下
create or replace function qdn_lks_fi...