<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
    簇和簇表
    ?
    ??? 簇其實就是一組表,是一組共享相同數據塊的多個表組成。 將經常一起使用的表組合在一起成簇可以提高處理效率。
    ?
    ??? 在一個簇中的表就叫做簇表。建立順序是:簇→簇表→數據→簇索引
    ?
    ??? 1、創建簇的 格式
    ?
    ??? CREATE CLUSTER cluster_name
    ??? (column date_type [,column datatype]...)
    ??? [PCTUSED 40 | integer] [PCTFREE 10 | integer]
    ??? [SIZE integer]
    ??? [INITRANS 1 | integer] [MAXTRANS 255 | integer]
    ??? [TABLESPACE tablespace]
    ??? [STORAGE storage]
    ?
    ??? SIZE:指定估計平均簇鍵,以及與其相關的行所需的字節數。
    ?
    ??? 2、創建簇
    ?

    ??? create cluster my_clu (deptno number )

    ??? pctused 60

    ??? pctfree 10

    ??? size 1024

    ??? tablespace users

    ??? storage (

    ???? ? initial 128 k

    ???? ? next 128 k

    ???? ? minextents 2

    ???? ? maxextents 20

    ??? );

    ?
    ??? 3、創建簇表
    ?

    ??? create table t1_dept(

    ????? deptno number ,

    ????? dname varchar2 ( 20 )

    ??? )

    ??? cluster my_clu(deptno);

    ? ?

    ??? create table t1_emp(

    ????? empno number ,

    ????? ename varchar2 ( 20 ),

    ????? birth_date date ,

    ????? deptno number

    ??? )

    ??? cluster my_clu(deptno);

    ?
    ??? 4、為簇創建索引
    ?

    ??? create index clu_index on cluster my_clu;

    ?
    ??? 注:若不創建索引,則在插入數據時報錯:ORA-02032: clustered tables cannot be used before the cluster index is built
    ?
    ?
    管理簇
    ?
    ??? 使用ALTER修改簇屬性(必須擁有ALTER ANY CLUSTER的權限)
    ?
    ??? 1、修改簇屬性
    ?
    ??? 可以修改的簇屬性包括:
    ??? * PCTFREE、PCTUSED、INITRANS、MAXTRANS、STORAGE
    ??? * 為了存儲簇鍵值所有行所需空間的平均值SIZE
    ??? * 默認并行度
    ?
    ??? 注:
    ??? * 不能修改INITIAL和MINEXTENTS的值
    ??? * PCTFREE、PCTUSED、SIZE參數修改后適用于所有數據塊
    ??? * INITRANS、MAXTRANS僅適用于以后分配的數據塊
    ??? * STORAGE參數修改后僅影響以后分配給簇的盤區
    ?
    ??? 格式:

    ??? alter cluster my_clu

    ??? pctused 40

    ?
    ??? 2、刪除簇
    ?
    ??? drop cluster my_clu; -- 僅適用于刪除空簇
    ?

    ??? drop cluster my_clu including tables ; -- 刪除簇和簇表

    ?

    ??? drop cluster my_clu including tables cascade constraints ;

    ??? -- 同時刪除外鍵約束

    ?
    ??? 注:簇表可以像普通表一樣刪除。
    ?
    ?
    散列聚簇表
    ?
    ??? 在簇表中,Oracle使用存儲在索引中的鍵值來定位表中的行,而在散列聚簇表中,使用了散列函數代替了簇索引,先通過內部函數或者自定義的函數進行散列計算,然后再將計算得到的碼值用于定位表中的行。創建散列簇需要用到HASHKEYS子句。
    ?
    ??? 1、創建散列簇
    ?

    ??? create cluster my_clu_two(empno number(10) )

    ??? pctused 70

    ??? pctfree 10

    ??? tablespace users

    ??? hash is empno

    ??? hashkeys 150 ;

    ?
    ??? 說明:
    ??? * hash is 子句指明了進行散列的列,如果列是唯一的標示行,就可以將列指定為散列值
    ??? * hashkeys 指定和限制散列函數可以產生的唯一的散列值的數量
    ?
    ??? 2、創建散列表
    ?

    ??? create table t2_emp (

    ????? empno number ( 10 ),

    ????? ename varchar2 ( 20 ),

    ????? birth_date date ,

    ????? deptno number )

    ??? cluster my_clu_two(empno);

    ?
    ??? 注意:
    ??? * 必須設置數值的精度(具體原因不詳)
    ??? * 散列簇不能也不用創建索引
    ??? * 散列簇不能ALTER:size、hashkeys、hash is參數
    ?
    ?




    -The End-

    posted on 2008-10-19 21:49 decode360-3 閱讀(4754) 評論(0)  編輯  收藏 所屬分類: Oracle
    主站蜘蛛池模板: 亚洲人av高清无码| 亚洲av永久无码精品秋霞电影影院| 亚洲精品偷拍无码不卡av| 成人免费无码H在线观看不卡| 国产免费黄色大片| 亚洲国产欧洲综合997久久| 免费看国产精品3a黄的视频| 亚洲天堂一区在线| 小日子的在线观看免费| 无码欧精品亚洲日韩一区| a级毛片免费播放| 无码久久精品国产亚洲Av影片 | 亚洲短视频在线观看| 99re视频精品全部免费| 18gay台湾男同亚洲男同| 最近免费中文字幕mv在线电影| 久久久无码精品亚洲日韩蜜臀浪潮 | www.999精品视频观看免费| 亚洲人成无码网站在线观看| 色吊丝最新永久免费观看网站 | 男女超爽刺激视频免费播放 | 麻豆一区二区免费播放网站| 2020久久精品亚洲热综合一本| 午夜免费福利在线观看| 精品女同一区二区三区免费播放| 亚洲AV中文无码乱人伦在线视色 | 亚洲伊人色一综合网| 最新猫咪www免费人成| 亚洲AV无码国产一区二区三区| 午夜亚洲av永久无码精品| 99精品全国免费观看视频..| 亚洲女人18毛片水真多| 又粗又黄又猛又爽大片免费| 国产啪精品视频网站免费尤物 | 欧美日韩亚洲精品| 亚洲乱码日产一区三区| 最新欧洲大片免费在线| 青青视频免费在线| 久久精品国产亚洲av麻豆色欲 | 亚洲乱色熟女一区二区三区丝袜| 亚洲黄色免费在线观看|