oracle簇的使用

转载 2007年09月30日 17:47:00
    - 选择合适的字段作为簇键
    一个好的簇键应有足够的唯一值以保证与每个键值响应的一组记录能大约放满一个数据块。每个簇键值的记录太少,既浪费空间,而在效率方面的改善却微乎其微。每个簇键值的记录太多,会造成额外的搜索来找到这个键值的记录。过于一般化的键值(如男/女)额外的搜索可能导致比没有簇更差的效率。
    - 效率的考虑
    簇相对于将一个表和他的索引分开存储将降低DML语句(Insert, Update, Delete)的效率。这一缺点与空间的使用和扫描一个表所必需访问的数据块的数目有关系。由于是多个表共享每个数据块,存储一个簇表将使用比这个表不使用簇时更多的空间。
    适合存储在簇中的表:这些表通过完整性约束相关联,并且通常使用SELECT语句将两个或多个表联合起来一起访问。
    如果你以用于关联的字段为表建簇,你就能降低执行这个query时,所需访问数据块的数目;一个键值上的连接所需的所有记录都在同一个数据块中。
    类似的把一个单独的表存储在簇中也很有用。例如,表EMP可以按照deptno字段建簇,将相同部门的雇员记录放在一个数据块中。如果应用通常一个部门一个部门处理记录的话,就会得到好处。
    hash簇的使用
    hash簇适用于存储那些静态的并且经常用等查询进行查询的单独的表或者簇表。
    表和索引的分区
    分区的方法 1- range partitioning ;2- hash partitioning ;3- composite partitioning
    所有的分区的逻辑属性是相同的,但他们的物理属性可以不同。
    分区的剪枝 (Partition Pruning)
    oracle server 可以自动识别分区,根据select 语句所指定的选择条件,只查询有用的分区。如果语句的条件中对分区字段使用了函数,优化器则不能进行分区剪枝,但to_date函数除外。
    分区的优点:
    - VLDB
     对于大型的历史数据表及其索引,将其按时间进行分区,分别管理和方便地添加和删除。
     对于关键任务数据:分区能降低维护窗口,恢复时间和故障影响,提高有效性。 分区能提高关键表和索引的访问效率。
    - 降低计划维护的当机时间
     可以只在某个分区上操作,而不是整个表上; 由于分区独立性,操作可以在不同分区上并行执行。
    - 降低数据故障引起的当机时间
     由于恢复的单位变小了(为分区),所以:执行recover命令的时间降低了; 恢复离线的表空间所需磁盘空间也减少;不可用数据也减少了。
    - DSS 性能
    可以只作分区扫描而不是全表扫描,提高响应时间;并且能降低排序所需的临时磁盘空间。
    - I/O性能
     将数据分配到不同的物理设备上,平衡I/O
    - 分区透明性
    Range partition
     适合历史数据的分区,通常按日期
    Hash partition
     适合于如下情形 性能原因(并行DML,分区剪枝,partition-wise联接)
     - 事先不知道映射到给定的范围内的数据有多少
     - 范围分区的大小差别很大
     - 分区剪枝和分区键上的partition-wise联接非常重要
     分区数目应是2的乘方(2,4,8,16。。。)
     不能合并,删除,拆分分区;但可以增加或减少分区的数目
  Composite partition

使用range partition, 在每个分区上使用hash partition划分子分区
        本文转自
http://oracle.chinaitlab.com/exploiture/17034.html

oracle的簇与簇表

簇由一组共享多个数据块的多个表组成,它将这些表的相关行一起存储到相同数据块中,这样可以减少查询数据所需的磁盘读取量。创建簇后,用户可以在簇中创建表,这些表称为簇表。 例如有如下两个表:student和...
  • luxiaopengpeng
  • luxiaopengpeng
  • 2015年09月02日 15:02
  • 2680

Oracle簇表介绍 (clustered table)

簇表概述簇表(cluster) 是一种可以选的存储数据方式。簇表由1组拥有相同的列而且经常被一起使用的数据表构成,这组表在存储时会共享一部分Data Blocks, 例如,employees 和 de...
  • nvd11
  • nvd11
  • 2013年04月02日 00:55
  • 1842

Oracle的簇

l       管理簇的准则  簇提供一种可选的存储表的数据的方法.一个簇是由共享相同数据块的一组表组成的. 因为这些表共享公共的列并且经常一起被使用 所以将这些表组合在一起 例如 emp 和dept...
  • blackstreet
  • blackstreet
  • 2006年11月03日 11:58
  • 2132

exp导出数据库卡死在“正在导出簇定义”的解决办法

设置如下环境变量即可LD_LIBRARY_PATH=$ORACLE_HOME/lib LIBPATH=$ORACLE_HOME/lib
  • flcandclf
  • flcandclf
  • 2009年07月20日 12:28
  • 4216

簇和簇表+簇+簇表+创建簇+创建簇表

簇和簇表 簇 1簇是由一组共享相同数据块的多个表组成,它将这些表的相关行一起存储在相同数据块中,这样可以减少查询数据所需的磁盘读取量。 2对于单独使用的表也不应该使用簇。 3简单来说就是2个表...
  • zhou920786312
  • zhou920786312
  • 2017年06月02日 08:35
  • 207

用DiskGenius V4.2.0进行调整容量时提示“$Bitmap 有标记已使用的未用簇”

在cmd中使用磁盘检查命令chkdisk。        使用参数/X ,会先强制卸除卷,该卷的所有打开的句柄都将无效(隐含 /F)。        chkdisk /x /f  c:。       ...
  • freefan1
  • freefan1
  • 2016年08月23日 15:47
  • 4557

Oracle 11g笔记——聚簇

一、聚簇 1、含义    聚簇就表的一种特殊的结构。一个聚簇由多个表组成,几个表共享相同的数据块。一个聚簇有一个或多个公共的列。    Oracle把多个表的数据物理地存储在一起,以加速表的连接...
  • lJean
  • lJean
  • 2016年05月10日 09:13
  • 781

管理簇+创建簇索引+修改簇+删除簇

管理簇 使用的测试数据 create cluster my_clu (deptno number ) pctused 40 pctfree 10 size 1...
  • zhou920786312
  • zhou920786312
  • 2017年06月02日 08:56
  • 211

TCP/IP协议簇简介

TCP/IP基本介绍
  • qq504196282
  • qq504196282
  • 2016年10月31日 10:35
  • 507

Oracle 散列(HASH)聚簇表

Oracle 散列(HASH)聚簇表 散列聚簇表 Hash clustered table与索引聚簇表非常相似,只有一个主要区别: 聚簇键索引被一个hash函数所取代,表中的数据就是索引.所...
  • jumewo
  • jumewo
  • 2013年08月25日 09:32
  • 1819
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle簇的使用
举报原因:
原因补充:

(最多只允许输入30个字)