麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

Oracle 簇的使用詳解

2024-08-29 13:55:17
字體:
來源:轉載
供稿:網友
簇其實就是一組表,由一組共享相同數據塊的多個表組成,將經常一起使用的表組合在一起成簇可以提高處理效率;在一個簇中的表就叫做簇表。
建立順序是:簇→簇表→簇索引→數據
創建簇的格式
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)如果空間不夠,并且不能為將要插入的新記錄分配額外的空間,那么不要使用聚簇
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产亚洲精彩视频 | 亚州成人在线观看 | 日本一级黄色毛片 | 日本xxxx视频 | 大逼逼影院 | 欧美黄色免费视频 | 久久777国产线看观看精品 | 美女黄页网站免费进入 | 欧美一级做性受免费大片免费 | 久久久久99一区二区三区 | 91精品国产99久久久久久 | 片在线观看 | 视频一区二区三区免费观看 | 欧美一区高清 | 久草视频中文 | 九九热在线视频观看 | 九九久久视频 | 国产99视频精品免视看9 | 黄色特级一级片 | 最新av网址在线观看 | 麻豆视频在线免费观看 | 国产精品久久久久一区二区 | 精品国产一区二区三 | 成年人性视频 | 久久欧美亚洲另类专区91大神 | 久草在线新时代视觉 | 亚洲影视中文字幕 | 成人做爰高潮片免费视频美国 | 中文字幕在线免费观看电影 | 国产免费中文字幕 | 一级在线观看 | 91精彩在线 | 成年毛片 | 国产性tv国产精品 | 欧美成在线视频 | 成人免费网站在线观看视频 | 国产精品久久久久久久久久久久久久久久 | 国产精品成aⅴ人片在线观看 | 精品二区在线观看 | 亚洲人成中文字幕在线观看 | 91在线免费观看 |