真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle表怎么看水位 oracle 水位

Oracle里面 表的高水位是怎么會事情? 就是說的HWM哪個東西

在MSSM的FREELIST下, 高水位High Water Mark代表所有相關(guān)塊, 高水位以上就是未格式化unformatted 的數(shù)據(jù)塊,INSRT數(shù)據(jù)時不能直接使用。當(dāng)FREELIST中不包含可插入數(shù)據(jù)塊時 HWM默認(rèn)每次上升5個數(shù)據(jù)塊。

創(chuàng)新互聯(lián)建站自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項目實(shí)施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元利通做網(wǎng)站,已為上家服務(wù),為利通各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

對于ASSM管理的BITMAP 數(shù)據(jù)段而言,Oracle允許在數(shù)據(jù)段的中部出現(xiàn)unformatted blocks未格式化的數(shù)據(jù)塊, 基于以下的原因:

一、在以前 HWM以下的數(shù)據(jù)塊必然是formatted , 為了維護(hù)這一點(diǎn)代價是昂貴的:

長時間持有HW enqueue 隊列鎖對并發(fā)的抑制

過于頻繁的持有HW enqueue在Oracle研發(fā)看來是罪惡的

上漲HWM 而不格式化 這樣的話更有效率,因?yàn)楦袷交婕暗?IO,是一種較慢的操作

二、 在直接路徑加載過程中,最后的一個extent中的數(shù)據(jù)塊將被全部format 格式化,而如果下一次還是direct load直接路徑加載數(shù)據(jù)的話,它不會從Freelist上獲取數(shù)據(jù)塊,而是使用HWM以上新的數(shù)據(jù)盤區(qū)extent。 如果這個數(shù)據(jù)段是典型的一直在direct load加載數(shù)據(jù)的話,則可能在freelist上有很多unused block從來不被使用,而被浪費(fèi)了。 這可能造成空間的浪費(fèi),尤其是在Extent size 很大的時候 或者 數(shù)據(jù)段幾乎從來不傳統(tǒng)路徑插入數(shù)據(jù)的時候。保留這些數(shù)據(jù)塊為unformatted則可以讓加載數(shù)據(jù)時利用到這些空間空洞

如果自己搞不定可以找ASKMACLEAN專業(yè)ORACLE數(shù)據(jù)庫修復(fù)團(tuán)隊成員幫您恢復(fù)!

oracle9.2如何在不使用TRUNCATE語句的情況下拉回高水位線(High

最笨最簡單也最管用的方法,就是重建表。建立一個新表將原表的數(shù)據(jù)插入到新表,刪除原表,將新表重命名就OK。

oracle 如何查看表 高水位線

select blocks, empty_blocks from dba_tables where table_name='xxx' and owner='xx';

blocks就是已經(jīng)分配的空間即HWM,實(shí)際分配的空間,不是實(shí)際大小

如何降低Oracle表的高水位

1. 執(zhí)行表重建指令 alter table table_name move(驗(yàn)證不可行,不降低水位線,但可釋放表空間)

當(dāng)你創(chuàng)建了一個對象如表以后,不管你有沒有插入數(shù)據(jù),它都會占用一些塊,ORACLE也會給它分配必要的空間.同樣,用ALTER TABLE MOVE釋放自由空間后,還是保留了一些空間給這個表.

ALTER TABLE ... MOVE 后面不跟參數(shù)也行,不跟參數(shù)表還是在原來的表空間,Move后記住重建索引.

查詢失效索引語句:select index_name,table_name,tablespace_name,status From dba_indexes Where owner='HNUNICOM' And status'VALID';

重建索引語句:alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;

如果以后還要繼續(xù)向這個表增加數(shù)據(jù),沒有必要move,只是釋放出來的空間,只能這個表用,其他的表或者segment無法使用該空間。

2. 執(zhí)行alter table table_name shrink space;(已經(jīng)驗(yàn)證成功,推薦使用,可釋放數(shù)據(jù)庫和磁盤空間空間,大表可同時降低表自身和表空間的高水位線,小表則只可以降低表自身的高水位線,原因不詳)

注意,此命令為Oracle 10g新增功能,執(zhí)行該指令之前必須允許行移動 alter table table_name enable row movement;

3. 復(fù)制要保留的數(shù)據(jù)到臨時表t,drop原表,然后rename臨時表t為原表(未驗(yàn)證

4. 用EXP導(dǎo)出后,刪除原表/表空間,之后用IMP重新導(dǎo)入(驗(yàn)證成功)

5. Alter table table_name deallocate unused(驗(yàn)證不可行,不降低水位線)

注:這證明,DEALLOCATE UNUSED為釋放HWM上面的未使用空間,但是并不會釋放HWM下面的自由空間,也不會移動HWM的位置.

6. 盡量使用truncate(驗(yàn)證不可行,不降低水位線,可釋放數(shù)據(jù)庫空間,但truncate后表默認(rèn)空間大小為刪除前的空間大小,如想釋放計算機(jī)磁盤空間,需要用方法2壓縮)

oracle設(shè)置水位線有什么作用,或者說有什么好處?請給解釋一下,謝謝了。

高水位線的意思是oracle數(shù)據(jù)塊歷史使用空間的最高點(diǎn),好處就是比如做全表掃描的話,有了高水位線,全表掃描只會掃描到水位線處,再向上就不會掃描了,因?yàn)楦緵]有數(shù)據(jù),所以對oracle查詢性能是有一定的幫助的,另外如果一個表做過大量的delete操作的話,需要定時shrink,因?yàn)閐elete不回收高水位,下次做全表掃描的時候還會掃描到高水位線,但其實(shí)高水位以下很多都是free的空間,會影響全表掃描的性能,這也是如果你想刪除表中所有數(shù)據(jù)時最好用truncate的原因,因?yàn)閠runcate回收高水位。


網(wǎng)站標(biāo)題:oracle表怎么看水位 oracle 水位
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/hghhcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部