`
zzhonghe
  • 浏览: 248216 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle的表

    博客分类:
  • DB
 
阅读更多
堆表 -- 普通表
99%的应用在使用到表的时候,都是使用堆表。Heap,这是一个无序的空间,插入的数据会找到一个合适的位置来存储,带有随机性,而不是按插入的顺序来存储。所以,在全表扫描的时候,返回的数据是按照空间检索的顺序来找到并返回记录。
 
索引组织表
和堆表相比起来,索引组织表的所有的数据都是保存在索引的数据结构里面,存在索引段里面而非表段,所有的数据插入都是有序的放置在指定的连续的块,索引就是数据。这样做的好处就是在通过主键索引查询的时候,能够获得更快的查询速度。代价则是由于索引是很复杂的数据结构,在插入新数据的时候,相比起堆表来会有很多更复杂的动作,对性能有一定的影响。
 
数据的存储更加紧密,相邻的数据都在相同的块里面,带来的好处就是减少了IO的操作,同时提高了缓存的可用性命中率。
 
创建的关键字为   organization index
 
聚簇, 聚簇表,聚簇索引的概念对比
 
聚簇是一个定义,一种数据保存的方式: 把相关联的数据放在同一个块里面。
create cluster emp_dept_cluster (id number);  
 
聚簇表:  采用聚簇方式建立的表,和普通的表的区别是,需要定义聚簇的名字,以及相关的聚簇键
create table dept
(
id number primary,
name varcahr2(20),
location varcahr2(20)
)
cluster emp_dept_cluster(id);
 
emp_dept_cluster:为表创建的聚簇,聚簇名
Id:  聚簇的建立是基于id的值
 
聚簇索引:
这种索引和其他索引并无太大区别,只是他指向的是一个聚簇块。 一般的索引指向的是数据块。
create index emp_dept_cluster_idex on cluster emp_dept_cluster;
 
索引聚簇表
如果许多表有相同的列,那么这组表都保存到相同的数据块中,(A.id=B.id),等到这些个表需要进行关联的时候,就能以很小的IO代价找到这两个id列所在的块进行匹配。从概念上讲是对表的join进行了“预链接”, 提高join的效率
另外也会把同一个表里面把数据按列分组存储,目标只有一个,那就是减少IO,加快检索的速度。
创建的方法和正常创建的区别就是在列定义后面增加了 cluster参数
 
从以上的特性可以看出,如果需要频繁修改,全表扫描,频繁Truncate 或者是需要分区的情况下,都不能使用聚簇表。
 
而只读情况下,聚簇表就很适用。
 
散列聚簇表:
 
这种聚簇表和索引聚簇表的唯一区别就在于,没有索引,他通过聚簇块里面列的值,算出一个散列值x23j87d,然后这个值来找到整个row的位置。而索引聚簇表,通过聚簇快的索引,找到相应的行的rowId.
 
创建散列聚簇:
create cluster emp_dept_cluster (id number) hashkeys 1000;  
 
在聚簇上建表:
create table dept
(
id number primary,
name varcahr2(20),
location varcahr2(20)
)
cluster emp_dept_cluster(id);
 
使用这种表的的一个好处,是单条数据查询,join非常快。 但是连续区间的查询就非常慢,需要进行全表扫描。
 
临时表
使用create global temporrary table temp_table
这种表的内容只存在于回话期间,在回话结束的时候就会清理。首先在性能上非常的卓越。几乎没有redo,所以没有IO。 同时,清理表,也不需要delete语句。
所以相比使用普通表来作为临时表的方法,这种真正的临时表在性能上有着巨大的优越性。
一个使用的误区:
很多时候使用临时表的目的,把很多个查询语句的结果集放到一个临时表里面insert,最后把这个结果集select出来,进行其他的处理。这种方法没有错,但是相比起把所有的小select 语句union成一个大的select语句,然后去处理结果集,这种后者的效率要高很多。
 
外部表
数据表存储在数据库外面,就像是普通的文件一样。通常是用作想数据库加载数据。 10g以后还引入了外部表卸载功能,更加方便了数据库之间数据的移动。
 
0
0
分享到:
评论

相关推荐

    oracle表结构生成工具

    Oracle表结构生成工具是一种实用程序,它允许用户利用Excel电子表格快速创建Oracle数据库的表结构。这个工具的主要目的是提高数据库设计的效率,特别是在处理大量数据表定义时。下面将详细介绍这个工具及其工作原理...

    SqlServer表结构转oracle表结构

    8. **测试与验证**:完成表结构迁移后,必须进行充分的测试,确保新创建的Oracle表能够正常工作,所有业务逻辑和查询都能正确执行。 总的来说,SQL Server到Oracle的表结构转换涉及了数据库设计、编程和数据库管理...

    oracle表结构导word工具

    "Oracle表结构导Word工具"就是为了解决这个问题而设计的,它能够将Oracle数据库中的表结构方便快捷地导出成Word文档,使得信息更易于阅读和共享。 这个工具的核心功能在于自动化生成表结构的详细文档,包括表名、...

    如何:让Oracle表及字段显示为区分大小写

    ### 如何让Oracle表及字段显示为区分大小写 #### Oracle内部表存储原理与区分大小写的实现 在深入了解如何让Oracle表及字段显示为区分大小写之前,我们需要先理解Oracle内部是如何存储表和字段的。Oracle数据库...

    oracle 表转实体类工具

    "Oracle表转实体类工具"是一种实用的开发辅助软件,它能自动化地将Oracle数据库中的表结构转换为Java实体类代码,极大地提高了开发效率。这个工具能够自动分析表的字段、数据类型,并生成对应的Java属性,同时还能...

    如何正确的删除Oracle表空间数据文件

    本文将详细介绍如何正确地删除Oracle表空间数据文件,探讨OFFLINE和OFFLINE DROP的区别,以及在操作系统层面删除数据文件后的恢复策略。 首先,我们来看如何使用`DROP DATAFILE`命令删除数据文件。这个命令允许管理...

    oracle表空间命令语句大全

    Oracle 表空间命令语句大全提供了 Oracle 数据库管理的重要操作,包括建立表空间、建立 UNDO 表空间、建立临时表空间、改变表空间状态、删除表空间、扩展表空间和查看表空间信息等。这些命令对于 Oracle 数据库管理...

    oracle表空间碎片整理

    利用DBMS_SPACE包对Oracle 表碎片进行监控与清理,

    Oracle表删除大量数据(千万)后查询变慢问题(原因分析)

    Oracle 表删除大量数据后查询变慢问题分析 在 Oracle 数据库中,如果删除了大量数据(千万级别),可能会出现查询变慢的问题。下面我们将分析这个问题的原因,并提供解决方案。 问题的原因主要有两个方面: 1. 表...

    导出Oracle 表结构工具

    "导出Oracle表结构工具"就是这样一个实用程序,它简化了这个过程。 DBExport是一个专门设计用于Oracle数据库的工具,它能够快速高效地导出表结构和数据。标题中的"DBExport2.51 For ORACLE"指的是该工具的特定版本...

    六分钟学会创建Oracle表空间的步骤[转]

    标题与描述均提到了“六分钟学会创建Oracle表空间的步骤”,这暗示了文章旨在提供一个快速学习如何在Oracle数据库中创建表空间的教程。Oracle表空间是数据库中用于存储数据的一个逻辑容器,每个表空间由一个或多个...

    quartz-2.2.1的oracle表.sql

    quartz-2.2.1的oracle表的SQL脚本,有需要的同学欢迎下载。

    解决Oracle表删除大量数据后查询变慢问题

    Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了

    Quartz2.X Oracle表结构及字段注释下载

    Quartz2.X Oracle 表结构建表语句和字段注释,可用于Quartz的持久化配置

    oracle表空间不足报错的解决

    oracle表空间不足报错的解决 。。。。。。。。。。。。。。。。。。。。。。

    oracle表中已经有数据还能创建分区吗

    oracle创建分区表

    ORACLE表空间大小统计语句

    ORACLE表空间大小统计语句,比较详细的。。。。

    linux系统下创建oracle表空间和用户权限查询

    linux系统下创建oracle表空间和用户权限查询,安装Oracle系统时可以用到。

    oracle表空间详解

    Oracle 表空间详解 Oracle 表空间是 Oracle 数据库中一个非常重要的概念,它是数据库中存储空间的逻辑概念。由于 Oracle 数据库可以存储大量的数据,但是数据文件大小受操作系统的限制,而过大的数据文件对数据的...

    Oracle 表空间与数据文件

    Oracle 表空间与数据文件 Oracle 表空间是 Oracle 数据库中一个逻辑集合,包含一个或多个数据文件。表空间是 Oracle 数据库中的一个逻辑存储对象,用于存储永久段、临时段和回滚段等数据。 Oracle 表空间分类有...

Global site tag (gtag.js) - Google Analytics