婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle 簇的使用詳解

Oracle 簇的使用詳解

熱門標簽:word地圖標注方向 開封智能外呼系統廠家 百度地圖標注素材 阿爾巴尼亞地圖標注app 征服眼公司地圖標注 外呼線路外顯本地號碼 征服者火車站地圖標注 美圖秀秀地圖標注 人工智能地圖標注自己能做嗎
簇其實就是一組表,由一組共享相同數據塊的多個表組成,將經常一起使用的表組合在一起成簇可以提高處理效率;在一個簇中的表就叫做簇表。
建立順序是:簇→簇表→簇索引→數據
創建簇的格式
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:指定估計平均簇鍵,以及與其相關的行所需的字節數。
1、創建簇
復制代碼 代碼如下:

    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 
    ); 

2、創建簇表
復制代碼 代碼如下:

    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); 

3、為簇創建索引
復制代碼 代碼如下:

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 ;--同時刪除外鍵約束 

注:簇表可以像普通表一樣刪除。
3、清空簇
復制代碼 代碼如下:

truncate cluster my_clu;

注:所有在此簇上的表的數據全部被清空
散列聚簇表
在簇表中,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參數
不宜用聚簇表的情況
1)如果預料到聚簇中的表會大量修改,聚簇表會對DML的性能產生負面影響
2)非常不適合對單表的全表掃描,因為只能引起對其它表的全表掃描
3)頻繁對表進行TRUNCATE和加載,因為聚簇中的表是不能TRUNCATE的,只能TRUNCATE簇
4)如果表只是偶爾被連接或者它們的公共列經常被修改,則不要聚簇表
5)如果經常從所有有相同聚簇鍵值的表查詢出的結果數據超過一個或兩個Oracle塊,則不要聚簇表
6)如果空間不夠,并且不能為將要插入的新記錄分配額外的空間,那么不要使用聚簇

標簽:孝感 海北 葫蘆島 泰安 淮南 酒泉 宜春 六安

巨人網絡通訊聲明:本文標題《Oracle 簇的使用詳解》,本文關鍵詞  Oracle,簇,的,使用,詳解,Oracle,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle 簇的使用詳解》相關的同類信息!
  • 本頁收集關于Oracle 簇的使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 武定县| 黑河市| 兴仁县| 中江县| 周宁县| 同德县| 纳雍县| 靖西县| 乐山市| 达拉特旗| 台山市| 阳曲县| 桑植县| 漳州市| 怀安县| 白河县| 桓台县| 屏南县| 芮城县| 建始县| 交口县| 梅州市| 白河县| 新密市| 宜君县| 荆门市| 彭阳县| 白玉县| 绥德县| 紫金县| 建水县| 南安市| 弥勒县| 尼木县| 黄浦区| 水富县| 南和县| 西贡区| 昭平县| 久治县| 雅安市|