日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 原理:高水位线、PCTFREE、PCTUSED、索引组织表、簇表、临时表

發布時間:2024/10/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 原理:高水位线、PCTFREE、PCTUSED、索引组织表、簇表、临时表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.11g中表的類型:

2.高水位線HWM,(High Water Mark)

3.PCTFREE 和PCTUSED;

4. move、shrink、truncate來降低高水位線

5.IOT表、簇表、臨時表


1.11g中表的類型:

普通表、分區表、索引組織表IOT、簇表、臨時表、嵌套表、對象表等。

分區表:為了提高容納的數據量和查詢速度把一個表分在多個區上。簇表:使聯合查詢時變得快。適用于頻繁關聯查詢的表。嵌套表:表中有表,比如的表A中某行某列是表B的數據,像"盒子"一樣的包含關系,就叫嵌套表。

2.高水位線HWM,(High Water Mark)

高水位線是指的是在 表中數據塊的歷史最大使用數量。高水位線一般是不會降低的。除非使用rebuild重建,truncated截斷,shrunk收縮才會刷新高水位線。?

? 全表掃描時,就是從表中的第0個數據塊開始,一個數據塊一個數據塊的掃描到高水位線。也就是說,如果表中沒有任何數據,也會要掃描到高水位線的數據塊位置。

剛開始創建表是高水位線位于0號數據塊位置,然后不斷地插入數據,高水位線因此上升,然后把數據刪除,高水位線依舊不變,如上圖。

3.PCTFREE 和PCTUSED;

一個數據塊大小默認為8KB,而PCTFREE(默認10%)指定了一個數據塊中插入數據允許的最小空閑內存占比。而PCTUSED(默認40%)指定了一個數據塊中允許重新插入數據的內存占比,單位為%。當往表中插入數據時,不會把數據塊放滿,因為這個空閑內存是為了給修改數據做準備的。加入insert數據塊把數據塊放滿了后,再update數據內容,內容減小還好說,內容變多,當前數據塊就沒有可用的內存來給數據擴展了。數據塊包含了3部分:數據塊頭(Header)、空閑內存(Free Space)、數據(DATA);?PCTFREE控制著Free Space的最小值,超過則不準再插入,允許刪除。PCTUSED控制著DATA的最小值,超過則恢復允許插入。不是說PCTFREE設了20%空間區域就永遠大于20%,而是說空閑區域至少留20%將來給Oracle做數據擴展用的。一個數據塊可以放表中的多個行數據。

?結合上圖所示。當一個數據塊被啟用時,數據塊使用率從0%開始上升,未使用率從100%開始下降。假如PCTFREE設成20%,PCTUSED設成40%。由于剛開始數據塊的使用率小于PCTUSED,所以允許往數據塊中插入數據,直到未使用率達到FreeSpace變成了20%就不準在往此數據塊中插入數據了,想要再往這個數據塊中插入數據,就要把數據塊使用率下降到PCTUSED 40%才被允許。

如果數據依舊超出了數據塊總大小,將用行遷移的方式:Oracle會把原來數據塊上的行數據頭(Row-Header)保留,后面跟個C++一樣的指針,把數據Data遷移到新的數據塊上,讓指針指向這數據。

數據塊大小默認 8KB ,如果一個數據行大小超出了內存中最大可用的數據塊大小,將會發生行鏈接:將一筆數據放入不同的數據塊中,用指針的方式將同一筆數據關聯起來。

?

如果表空間上指定了ASSM時,建表時只能指定PCTFREE。ASSM,自動段空間管理。MSSM,手動段空間管理。

查看是否段空間管理: select s.TABLESPACE_NAME,s.SEGMENT_SPACE_MANAGEMENT from dba_tablespaces s;

表空間擴展:alter table voapd.t1 allocate extent(datafile 'D:\ORACLE\ORADATA\ORCL\TESTTBS.DBF' size 1m);

4. move、shrink、truncate來降低高水位線

? move 語句,將表中的數據移動到另一個表空間上,同時會清除表空間碎片和降低高水位線:

? alter table [表名] move [tablespace USERS];

為了理解高水位線,首先創建一張表t2:

------之前創建了表空間 TESTTBS; create table t2 tablespace TESTTBS as select * from dba_objects; --count(*)=72092

之后可以分析表中多少數據塊

analyze table t2 compute statistics for table; select table_name,blocks,num_rows from user_tables where table_name='T2';

然后再刪除t2 數據表中3萬行數據:

delete t2 where rownum < 30000; commit; analyze table t2 compute statistics for table; select table_name,blocks,num_rows from user_tables where table_name='T2';

可以發現,數據行少了3萬,但是占用的數據塊卻是沒有變的。

用move對表的高水位線進行調整:?

alter table t2 move tablespace USERS; analyze table t2 compute statistics for table; select table_name,blocks,num_rows from user_tables where table_name='T2';

可以看出,T2表中的高水位線被刷新了。但是使用move之時,表不能有其他應用,同時表上的索引也要重新建立。

?

用Shrink語句收縮表,將數據行的數據塊移動到另外一個數據塊上,是數據收縮,收縮完后降低高水位線。收縮時可以DML操作(增刪改),降低高水位線時不準DML操作。使用Shrink語句的前提是:表所在的表空間啟用了ASSM自動段管理,表上也啟用了ROW MOVEMENT

select s.TABLESPACE_NAME,s.SEGMENT_SPACE_MANAGEMENT from dba_tablespaces s select table_name,u.ROW_MOVEMENT from user_tables u where table_name='T2'; alter table t2 enable row movement; alter table t2 shrink space; analyze table t2 compute statistics for table; select table_name,blocks,num_rows from user_tables where table_name='T2'; ---

truncate table [表名]:保留表結構刪除所有表數據,無法回滾。這個操作也可以把HWM降到最低。

?

當數據量過多時,刪除表結構的速度會非常慢:可以先把改列設成unused,再把unused 的列給刪除,這樣刪除列的操作就會在數據庫空閑的時候自動完成。

alter table [表名] set unused column [列名];? ? ? alter table t2 drop unused columns;

5.IOT表、簇表、臨時表

IOT 索引組織表:這個表必須有主鍵,會自動地按照主鍵進行排序,是個有序的表。與普通表不同,普通表和表主鍵上的索引都會需要為它們留出存儲空間,而IOT不存在主鍵的空間開銷。索引(主鍵)是存放在一起的;數據存儲在索引塊中;所以經常通過主鍵來訪問數據的話,IOT表更適合;

create table student_iot(sno int,sname varchar2(20),sage int , constraints pk_student primary key(sno) ) organization index pctthreshold 30 overflow tablespace users; --指定閾值30%,當一行記錄太大超出了數據索引塊的30%,其他列(sname 、sage)就會放到指定的表空間里users

刪除索引表的溢出表,首先要先刪除索引表,然后清空回收站,命令 :?purge recyclebin;

?

簇表:兩個相互關聯的表數據,同時放到一個數據塊中。這樣關聯查詢時,就只有掃描1個數據塊就行。

創建簇表步驟如下:簇的數據類型要和表字段的數據類型一致。

----1.創建簇----- create cluster cluster1(ckey int); ----2.創建表時關聯簇--------- create table student_cluster(sno int ,sname varchar2(20),sage int )cluster cluster1(sno); ----3.創建另一張表時關聯簇--------- create table record_cluster(sno int ,record int )cluster cluster1(sno); ----4.簇上要建立索引-------create index index1 on cluster cluster1;select * from user_clusters; --查詢簇的信息select * from user_clu_columns; --查詢簇的關聯信息----------5刪除簇要先把簇表刪除-----------drop table student_cluster;drop table record_cluster;drop cluster cluster1;

臨時表:臨時表的創建必定在臨時表空間 TEMP,臨時表數據只能在同一個session中看到,數據不被不同session所共享。每個session的臨時表中的數據是完全獨立的;

創建臨時表語法如下:

create global temporary table student_temp(sno int ,sname varchar2(20),sage int ) --on commit delete rows --(默認值);on commit preserve rows;

其中 on commit delete rows; 指明了當事物提交或回滾時,自動把臨時表數據清除; on commit Preserve rows 指明了當Session 斷開和數據庫連接時才會刪除臨時表中的數據;

由圖可以知道,兩個Session 中的臨時表是完全獨立的,互不干擾,盡管用戶都是相同的。指定?on commit preserve rows;的臨時表 ,其中的數據不會因為commit而被清空。然而用戶斷開連接時,臨時表中數據才會刪除。

drop 掉臨時表的前提是,所有使用這臨時表的session中表內不準有數據。

當采用on commit delete rows創建臨時表時,一提交數據,表中的數據就被清空

查詢臨時表信息:

select u.TABLE_NAME as 表名,u.TEMPORARY as 是否是臨時表,u.DURATION as 是否是事務型的建表方式from user_tables u where u.TABLE_NAME='STUDENT_TEMP';

?

總結

以上是生活随笔為你收集整理的Oracle 原理:高水位线、PCTFREE、PCTUSED、索引组织表、簇表、临时表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰999| 在线观看亚洲网站 | 欧美人与性动交α欧美片 | 亚洲 欧美 日韩 国产综合 在线 | 午夜大片在线观看 | 久久久久久久久久久久国产 | 色哟哟中文字幕 | 超碰这里只有精品 | 日韩在线一级片 | 久草视频在线免费 | 激情视频在线免费观看 | xxx国产在线观看 | 午夜黄色大片 | 拍摄av现场失控高潮数次 | 中文字幕狠狠干 | 成人免费在线电影 | av午夜激情 | 日日操网站| 国产13页 | 国产精品23p| 在线观看国产福利 | 国产午夜福利视频在线观看 | 主播一区二区 | 国产精品v亚洲精品v日韩精品 | 91丝袜一区在线观看 | 亚洲综合日韩在线 | 中文字幕亚洲不卡 | 不卡av一区 | 国产一区2 | 亚洲综合久久婷婷 | 好吊色欧美一区二区三区视频 | 国产在线观看精品 | 国产综合久久 | 国产黄色片在线 | 亚洲无色 | 国产成人综合欧美精品久久 | 欧美综合专区 | 一本色道久久88综合日韩精品 | 国产原创在线播放 | 俺也去网站 | 日韩在线成人 | 国产大奶在线 | 伊人激情在线 | chinese hd xxxx tube麻豆tv| 老牛影视av牛牛影视av | 成人中文网 | 黄色小说在线观看视频 | 欧美自拍第一页 | 免费黄片毛片 | 日韩高清在线一区二区 | 国产v综合v亚洲欧美久久 | 国产一区二区免费在线 | 国产91丝袜在线播放0 | 91网在线| 91在线精品秘密一区二区 | 91免费版黄色 | 黄色av网站在线免费观看 | 综合av第一页 | 伊人av在线 | 少妇搡bbbb搡bbb搡澳门 | 久久合合 | 欧美日本在线观看 | 色婷婷久久久 | www免费网站在线观看 | 91爱爱网站| 美梦视频大全在线观看高清 | 天天射日日 | 性高跟鞋xxxxhd人妖 | 日韩欧美亚洲综合 | 欧美一区二区三区四区在线 | 久久网址| 国产另类精品 | aaa欧美| 欧美一区自拍 | 男女污污视频在线观看 | 亚洲精品影院在线 | 美女黄站 | 日本成人在线一区 | 欧美怡红院一区二区三区 | 久久久久久久极品 | 中文字幕第66页 | 亚洲视频欧洲视频 | 狼人综合网 | 国产黑丝在线 | 精品中文字幕一区二区 | 日本一区二区三区在线播放 | 亚洲精品无码久久久 | 人妻夜夜爽天天爽 | 国产精品--色哟哟 | 人成精品| 蜜臀视频在线播放 | 国产偷人 | 韩国特级毛片 | 国产成人自拍网 | 百合sm惩罚室羞辱调教 | 亚洲欧美日韩国产综合 | 96av视频 | 成人黄色在线看 | 日韩一区不卡视频 |