演示資料塊整理(合併)的效果

2022-04-11 11:27:02 字數 1728 閱讀 9596

1概念理解

由於對錶空間進行頻繁的dml操作,在空間的分配上勢必會產生一些空間碎片影響系統效率。對磁碟碎片整理上可以使用的方法有重建表、move、shrink等。另一種情況是delete操作並不會**hwm高水位線,oracle掃瞄表時依然是從第1個資料塊掃瞄到hwm,當有新記錄插入時,也是從hwm後開始插入,之前標記為刪除的記錄所占用的空間並沒有釋放,這不光影響了我們資料掃瞄的效能而且驗證浪費了空間使用,下面我們就分別利用move\shrink兩中技術來整理合併資料塊。

建立一張表及索引:

3move**碎片演示

對test表進行分析:

檢視表的資料塊占用:

檢視索引的情況:

刪除部分資料:

再分析一下test表並查詢所占用的資料塊:

從上圖中可以發現當我們刪除一部分資料後,再執行分的分析發現表所占用的資料塊個數沒有發生改變,這就說明那些被我們刪除的資料所占用的空間並沒有被釋放。

現在執行表移動:

現在我們對進行一次分析:

如上圖中,表移動後執行表分析發現報出ora-20000錯誤,這是因為當我們執行表移動的時候,相應的表上的索引就失效,檢視索引狀態:

重建索引並檢視狀態:

現在再執行表分析檢視表占用資料塊情況:

從上圖中可以看到test表占用的資料塊變小了。

4shrink**碎片演示

現在我們將使用shrink命令**表空間,與move方法基本類似,我們將不再闡述,直接貼圖:

再次分析檢視資料塊占用情況:

可以發現雖然經過分析後表占用的資料個數並沒有改變。

從上圖中可以發現當執行shrink命令後,test表占用的資料塊個資料由1050變為870,test表上idx_test索引沒有受到影響,這說明我們執行shrink命令起到了效果。這裡需要注意的是要與move命令表空間**的區別:當表上有索引時,使用move命令**表空間合併資料塊時,相應表上的索引會失效,執行move命令後需要重建索引,這一點需要特別注意,而使用shrink命令**表空間合併資料塊時,則相應表上的索引將不會受到影響。

演示模擬整理

1.a b計算 哈哈哈,這題好蛋疼,不對,我沒蛋 2.平方數判斷 include include include int main 第四章堂下練習判斷平方數 1007 3.數列求和,兩題 include include int main printf d sum include include in...

DataGridView資料控制項演示

書上的一段話,沒有深入介紹呀。這才是我感興趣的。基要以小型網格顯示唯讀值或者使使用者能夠編輯具有數百萬條記錄的表,datagridview控制項將提供可以方便地進行程式設計以及有效地利用記憶體的解決方案。but,後來書上都沒有講的。1 using system 2using system.colle...

塊級元素與內聯元素整理

1 塊級元素 div p form,ul,li ol,dl,form,address,fieldset,hr,menu,table 行內元素 span,strong,em,br,img input,label,select,textarea,cite,內聯元素 inline element a 錨點...