亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle9i自動(dòng)分段空間管理改善分段存儲(chǔ)

瀏覽:153日期:2023-11-13 10:49:29
為了保持其最強(qiáng)大和最靈活數(shù)據(jù)庫的地位,Oracle在最近發(fā)布的幾個(gè)版本里一直都在創(chuàng)建新的機(jī)制來對(duì)表格和索引的存儲(chǔ)進(jìn)行簡(jiǎn)化和分塊。從Oracle8i開始,Oracle開始在tablespace內(nèi)部將對(duì)象治理進(jìn)行自動(dòng)化。第一個(gè)增強(qiáng)的地方原來叫做本地治理tablespace(或者簡(jiǎn)寫作LMT)。在LMT里,Oracle將tablespace里的信息從數(shù)據(jù)字典的表格空間里移出去,而直接將其保存到tablespace自身里。這在Oracle9i里已經(jīng)成為了一個(gè)事實(shí)的標(biāo)準(zhǔn),因?yàn)樗鼫p輕了數(shù)據(jù)字典的負(fù)擔(dān)。 表格空間的第二個(gè)主要增強(qiáng)的是自動(dòng)分段空間治理(ASSM),它首次出現(xiàn)在Oracle9i里。有了ASSM,鏈接列表freelist被位圖所取代,它是一個(gè)二進(jìn)制的數(shù)組,能夠迅速有效地治理存儲(chǔ)擴(kuò)展和剩余區(qū)塊(free block),因此能夠改善分段存儲(chǔ)本質(zhì)。 治理空間的兩種方法 讓我們從比較這兩種空間治理開始: 本地治理tablespace(LMT)——LMT是通過把EXTENT MANAGEMENT LOCAL子句添加到tablespace的定義句法而實(shí)現(xiàn)的。和原來由字典治理的tablespace(DMT)不同,LMT會(huì)將擴(kuò)展治理自動(dòng)化,并保持Oracle DBA不會(huì)被用來指定治理擴(kuò)展大小的NEXT存儲(chǔ)參數(shù)。這個(gè)原則唯一的例外是在NEXT和MINEXTENTS一起用在表格創(chuàng)建的時(shí)候。 自動(dòng)區(qū)段空間治理(ASSM)——ASSM的tablespace是通過將SEGMENT SPACE MANAGEMENT AUTO子句添加到tablespace的定義句法里而實(shí)現(xiàn)的。通過使用位圖freelist取代傳統(tǒng)單向的鏈接列表freelist,ASSM的tablespace會(huì)將freelist的治理自動(dòng)化,并取消為獨(dú)立的表格和索引指定PCTUSED、FREELISTS和FREELIST GROUPS存儲(chǔ)參數(shù)的能力。 Oracle值得贊揚(yáng)的地方是,這兩個(gè)空間治理的方法都是可選的特性,而且Oracle的老手可能仍會(huì)使用更加具體的方法,只要他們?cè)敢獾脑挕R⒅兀粓D區(qū)段治理在Oracle9i里是可選的,而且只能在tablespace這一層實(shí)現(xiàn),這一點(diǎn)是十分重要的。原有的系統(tǒng)還能夠繼續(xù)使用傳統(tǒng)方法來治理freelist。 位圖freelist挑戰(zhàn)傳統(tǒng)的空間治理 在我討論位圖freelist和傳統(tǒng)的空間治理之前,讓我們看看位圖freelist是如何實(shí)現(xiàn)的。我會(huì)從使用區(qū)段空間治理自動(dòng)參數(shù)創(chuàng)建tablespace開始: create tablespace  asm_lmt_tsdatafile  'c:oracleoradatadiogenesasm_lmt.dbf'size  5mEXTENT MANAGEMENT LOCAL  -- Turn on LMTSEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM;一旦你定義好了tablespace,那么表格和索引就能夠使用各種方法很輕易地被移動(dòng)到新的tablespace里。下面就是我進(jìn)行創(chuàng)建的代碼: create table  new_custtablespace  assm_lmt_tsas  select * from customer; alter index cust_name_idx rebuild tablespace assm_lmt_ts; 要注重,當(dāng)表格或者索引被分配到這個(gè)tablespace以后,用于獨(dú)立對(duì)象的PCTUSED的值會(huì)被忽略,而Oracle9i會(huì)使用位圖數(shù)組來自動(dòng)地治理tablespace里表格和索引的freelist。對(duì)于在LMT的tablespace內(nèi)部創(chuàng)建的表格和索引而言,這個(gè)NEXT擴(kuò)展子句是過時(shí)的,因?yàn)橛杀镜刂卫淼膖ablespace會(huì)治理它們。但是,INITIAL參數(shù)仍然是需要的,因?yàn)镺racle不可能提前知道初始表格加載的大小。對(duì)于ASSM而言,INITIAL最小的值是三個(gè)區(qū)塊。 關(guān)于一個(gè)萬能的方法對(duì)于Oracle來說是否是最好的方法還有一些爭(zhēng)論。在大型數(shù)據(jù)庫里,單獨(dú)的對(duì)象設(shè)置會(huì)帶來性能和存儲(chǔ)上的巨大不同。PCTFREE的問題 PCTFREE參數(shù)是用來指定數(shù)據(jù)塊剩余空間大小的,這一空間為將來數(shù)據(jù)行的擴(kuò)展而保留。假如PCTFREE設(shè)置得不得當(dāng),SQL的更新聲明就可能導(dǎo)致大量的數(shù)據(jù)行碎片和斷鏈。 數(shù)據(jù)行在剛保存的時(shí)候還很小,而在后來進(jìn)行了擴(kuò)展,在這種情況下,PCTFREE的設(shè)置就顯得尤其重要了。在這樣的系統(tǒng)里,通常會(huì)把PCTFREE設(shè)置成等于95,這就告訴Oracle要為數(shù)據(jù)行今后的擴(kuò)展保留95%的數(shù)據(jù)區(qū)段空間。 PCTUSED的問題 對(duì)PCTUSED不正確的設(shè)置(例如設(shè)得太小了)會(huì)導(dǎo)致SQL插入聲明性能的急劇下降。假如數(shù)據(jù)區(qū)塊剩余空間不是很多,那么在SQL插入操作的過程中就會(huì)產(chǎn)生過量的I/O,這是因?yàn)楸恢匦率褂玫腛racle數(shù)據(jù)區(qū)塊會(huì)被迅速地填滿。從極端的角度來看,沒有正確地設(shè)置PCTUSED會(huì)導(dǎo)致數(shù)據(jù)區(qū)塊的剩余空間要比表格數(shù)據(jù)行的平均長(zhǎng)度小。在這樣的情況下,Oracle會(huì)五次嘗試從freelist鏈取回區(qū)塊。在五次嘗試以后,Oracle會(huì)提升表格的水位,并為插入操作騰出五個(gè)新的數(shù)據(jù)塊。 有了Oracle9i的ASSM,PCTUSED就不再控制表格數(shù)據(jù)塊的重新鏈接闕值了,但是你必須依靠Oracle的判定來確定區(qū)塊在什么時(shí)候會(huì)有足夠的剩余空間放置到freelist里。 盡管有了本地治理的tablespace和ASSM之后Oracle9i會(huì)忽略PCTUSED、FREELISTS和FREELIST GROUPS等參數(shù),但是當(dāng)它們用于表格定義的時(shí)候,Oracle還是不會(huì)給出錯(cuò)誤信息: SQL> create table2 test_table3 (c1 number)4 tablespace5 asm_test6 pctfree 20 pctused 307 storage8 ( freelists 23 next 5m ) ;Table created. 假如你不記得帶有ASSM的本地治理tablespace會(huì)略掉任何為PCTUSED、NEXT和FREELISTS所指定的值的話,這將是一個(gè)十分嚴(yán)重的問題。. 使用ASSM的一個(gè)巨大優(yōu)勢(shì)是,位圖freelist肯定能夠減輕緩沖區(qū)忙等待(buffer busy wait)的負(fù)擔(dān),這個(gè)問題在Oracle9i以前的版本里曾是一個(gè)嚴(yán)重的問題。現(xiàn)在讓我們來仔細(xì)看看這個(gè)特性。 緩沖區(qū)不再忙等待 在沒有多個(gè)freelist的時(shí)候,每個(gè)Oracle表格和索引在表格的頭部都曾有一個(gè)數(shù)據(jù)塊,用來治理對(duì)象所使用的剩余區(qū)塊,并為任何SQL插入聲明所創(chuàng)建的新數(shù)據(jù)行提供數(shù)據(jù)塊。當(dāng)數(shù)據(jù)緩沖內(nèi)的數(shù)據(jù)塊由于被另一個(gè)DML事務(wù)處理鎖定而無法使用的時(shí)候,緩沖區(qū)忙等待就會(huì)發(fā)生。當(dāng)你需要將多個(gè)任務(wù)插入到同一個(gè)表格里的時(shí)候,這些任務(wù)就被強(qiáng)制等待,而同時(shí)Oracle會(huì)在同時(shí)分派剩余的區(qū)塊,一次一個(gè)。 有了ASSM之后,Oracle宣稱顯著地提高了DML并發(fā)操作的性能,因?yàn)椋ㄍ粋€(gè))位圖的不同部分可以被同時(shí)使用,這樣就消除了尋找剩余空間的串行化。根據(jù)Oracle的測(cè)試結(jié)果,使用位圖freelist會(huì)消除所有分段頭部(對(duì)資源)的爭(zhēng)奪,還能獲得超快的并發(fā)插入操作(圖A)。 Oracle9i自動(dòng)分段空間管理改善分段存儲(chǔ)圖A Oracle公司對(duì)使用位圖freelist進(jìn)行SQL插入操作的測(cè)試結(jié)果ASSM的局限性 盡管ASSM顯示出了令人激動(dòng)的特性并能夠簡(jiǎn)化Oracle DBA的工作,但是Oracle9i的位圖分段治理還是有一些局限性的: 一旦DBA被分配之后,它就無法控制tablespace內(nèi)部的獨(dú)立表格和索引的存儲(chǔ)行為。 大型對(duì)象不能夠使用ASSM,而且必須為包含有LOB數(shù)據(jù)類型的表格創(chuàng)建分離的tablespace。 你不能夠使用ASSM創(chuàng)建臨時(shí)的tablespace。這是由排序時(shí)臨時(shí)分段的短暫特性所決定的。 只有本地治理的tablespace才能夠使用位圖分段治理。 使用超高容量的DML(例如INSERT、UPDATE和DELETE等)的時(shí)候可能會(huì)出現(xiàn)性能上的問題。
標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 国外免费一级 | 中文字幕在线播 | 91在线一区二区三区 | 五月国产综合视频在线观看 | 男人狂躁女人下面视频免费看 | 好湿好紧好痛a级是免费视频 | 男女一级毛片免费视频看 | 一级毛片毛片毛毛片毛片 | 毛片大片 | 久久se精品一区二区影院 | 国产一级片观看 | 国产精品自线在线播放 | a级毛片毛片免费观看久潮喷 | 国产乱码一区二区三区四 | 亚洲欧美视频一区二区 | 国模久久 | 韩国免费毛片在线看 | 天天在线天天综合网色 | 99久久婷婷免费国产综合精品 | 久久夜色撩人精品国产 | 一区二区不卡在线 | 国产理论视频在线观看 | 一道精品一区二区三区 | 轻轻碰在线视频免费视频 | 国产精品第五页 | 亚洲欧美v国产一区二区 | 亚洲一区二区福利视频 | 亚洲一区二区影院 | 福利在线观看视频 | 中文字幕在线不卡精品视频99 | 免费看的黄色大片 | 啪啪一级片 | 亚洲国产色综合有声小说 | 九九99久久精品影视 | 亚洲网在线观看 | 欧美特黄录像播放 | 欧美日韩亚洲国产精品 | 91新视频| 亚洲综合色网站 | 拍拍拍拍拍拍拍无挡大全免费 | 国产麻豆传媒视频 |