<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、減少磁盤I/O,并改善訪問簇表的聯結所花的時間。
    ??? 2、每個簇鍵值在簇和簇索引中僅存儲一次。
    ?
    ??? cluster.JPG
    ?
    ?
    一、管理簇的準則
    ?
    1、為簇選擇合適的表
    ?
    ??? 需要使用簇的表一般滿足以下條件:
    ?
    ??? * 表主要被查詢 (即表不總是被插入或更改)
    ??? * 表中的記錄經常被一起或聯結查詢
    ?
    2、為簇鍵選擇合適的列
    ?
    ??? 一般來說,好的簇鍵具有足夠的唯一值,以便相應于每個鍵值的行的組大概會填充同一個數據塊。
    ??? 每個簇鍵值的行太少了就會浪費空間,并導致一點性能損失。而當每個簇鍵值的行太多時就可能會導致額外的搜索以發現該鍵的行,可能會造成比沒有成簇時更差的性能。
    ?
    ??? 另注:簇索引不能是唯一的或包含一個long類型的列。
    ?
    3、指定數據塊空間使用
    ?
    ??? 通過在創建簇時指定PCTUSED和PCTFREE參數,可以影響空間的利用。
    ?
    4、指定平均簇鍵及其相關的行所需的空間
    ?
    ??? CREATE CLUSTER語句有一個可選的參數——SIZE。它是一個估計的平均簇鍵及其相關行所需的字節數。Oracle在執行如下任務時使用SIZE參數:
    ?
    ??? * 估計可以填充到簇數據塊的簇鍵(及其相關的行)的數量時
    ??? * 限制放置到簇數據塊中的簇鍵的數量時
    ?
    ??? 注:SIZE不限制簇鍵可以使用的空間,只是一個估算值。
    ?
    5、指定每個簇和簇索引行的位置
    ?
    ??? 可以在CREATE CLUSTER/INDEX 語句中指定TABLESPACE 以指定其不同的位置。將簇和簇索引創建在不同的存儲設備上的不同表空間,可以減少磁盤競爭而同步得檢索表數據和索引數據。
    ?
    6、估計簇大小和設備存儲參數
    ?
    ??? 在創建簇之前就估算簇的大小有以下好處:
    ?
    ??? * 可以估算出所需磁盤空間,以確定合適的硬件選擇
    ??? * 估算單個簇的大小,以便更好得管理簇要使用的空間,設置存儲參數,改善I/O性能
    ?
    ?
    二、創建簇
    ?
    1、創建簇
    ?
    ??? CREATE CLUSTER emp_dept (deptno NUMBER(3))
    ??? PCTUSED 80
    ??? PCTFREE 5
    ??? TABLESPACE users
    ??? NEXT 300K
    ??? MINEXTENTS 2
    ??? MAXEXTENTS 20
    ??? PCTINCREASE 33);
    ?
    ??? 注:本例沒有INDEX子句,則會默認創建一個索引簇。
    ?
    2、創建簇表
    ?
    ??? CREATE TABLE emp (
    ??? empno NUMBER(5) PRIMARY KEY,
    ??? ename VARCHAR2(15) NOT NULL,
    ??? ...
    ??? deptno NUMBER(3) REFERENCES dept)
    ??? CLUSTER emp_dept (deptno);
    ?
    ??? CREATE TEBLE dept (
    ??? deptno NUMBER(3) PRIMARY KEY, ...)
    ??? CLUSTER emp_dept (deptno);
    ?
    ??? 注:可以將簇表和簇建立在不同的模式下,列名也不一定需要匹配,但是結構必須匹配。
    ?
    3、創建簇索引
    ?
    ??? CREATE INDEX emp_dept_index
    ??? ON CLUSTER emp_dept
    ??? INITRANS 2
    ??? MAXTRANS 5
    ??? TABLESPACE users
    ??? STORAGE (INITIAL 50K
    ??? NEXT 50K
    ??? MINEXTENTS 2
    ??? MAXEXTENTS 10
    ??? PCTINCREASE 33)
    ??? PCTFREE 5;
    ?
    ?
    三、更改簇
    ?
    ??? 簇的以下設置可以被更改:
    ?
    ??? * 物理屬性(PCTFREE、PCTUSED、INITRANS、MAXTRANS & STORAGE)
    ??? * 為存儲簇鍵值的所有行所需空間的平均值(SIZE)
    ??? * 默認的并行度
    ?
    ??? 另外,可明確地給簇分配新的盤區,或回收在簇的末端的任何未使用盤區。
    ?
    ??? ALTER CLUSTER emp_dept
    ??? PCTFREE 30
    ??? PCTUSED 60;
    ?
    ?
    四、刪除簇
    ?
    ??? 刪除不包含表的簇及其簇索引:
    ??? DROP CLUSTER emp_dept;
    ?
    ??? 刪除包含表的簇,并同時刪除簇表:
    ??? DROP CLUSTER emp_dept INCLUDING TABLES;
    ??? --注:當簇包含簇表且未增加INCLUDING TABLES子句,則會報錯
    ?
    ??? 簇表中包含外鍵約束時:
    ??? DROP CLUSTER emp_dept INCLUDING TABLES CASCADE CONSTRAINTS;
    ??? --若存在約束且未使用CASCADE CONSTRAINTS子句,則會報錯
    ?
    ??? 刪除簇表:
    ??? DROP TABLE xxx;
    ?
    ??? 刪除簇索引:
    ??? DROP INDEX xxx;
    ??? --注:簇索引雖然可以刪除,但是沒有簇索引就無法使用簇,所以一般在重建時才刪除簇索引。
    ?
    ?
    五、簇的相關信息
    ?
    ??? DBA|ALL|USER_CLUSTERS:數據庫中所有簇的表述,包括DBMS_STATS包或ANALYZE語句產生的統計數據
    ??? DBA|USER_CLU_COLUMNS:將表列映射到簇列
    ?




    -The End-

    posted on 2009-03-17 23:16 decode360-3 閱讀(298) 評論(0)  編輯  收藏 所屬分類: DBA
    主站蜘蛛池模板: 国产精品视频免费一区二区三区 | 亚洲成a人片在线观看中文!!!| 又粗又长又爽又长黄免费视频| 免费精品一区二区三区在线观看| 亚洲a级片在线观看| 黄+色+性+人免费| 亚洲国产一区在线观看 | 在线免费观看一级毛片| 亚洲人成色777777精品| 国产午夜影视大全免费观看| 亚洲а∨精品天堂在线| 国产精品成人无码免费| 国产高清对白在线观看免费91| 亚洲无码日韩精品第一页| a级毛片毛片免费观看久潮喷 | 亚洲人成黄网在线观看| 国产无人区码卡二卡三卡免费| 亚洲熟伦熟女专区hd高清| 日韩免费视频一区| caoporm超免费公开视频| 亚洲精品V欧洲精品V日韩精品 | 免费下载成人电影| 国产精品亚洲一区二区无码| 亚洲日韩中文字幕日韩在线| a毛片免费观看完整| 91亚洲精品麻豆| 全免费a级毛片免费看不卡| 九九全国免费视频| 婷婷亚洲久悠悠色悠在线播放| 在线精品一卡乱码免费| 国产AV无码专区亚洲AV琪琪| 国产成人麻豆亚洲综合无码精品| 久久精品免费观看国产| 亚洲无码一区二区三区| 伊人亚洲综合青草青草久热| 精品久久久久久久久免费影院| 国产精品亚洲一区二区在线观看| 亚洲日韩精品无码一区二区三区| 免费观看激色视频网站(性色)| 香港特级三A毛片免费观看| 久久久久亚洲Av无码专|