資料遷移過程中 delete 不釋放表空間問題解決

2021-08-30 09:42:37 字數 697 閱讀 3422

在乙個應用中如果資料量比較大,開始影響到頁面 sql 執行效率的時候,我們通常會考慮到將歷史資料搬遷到乙個歷史庫中,以此來提高當前系統的效能,但往往有時候可以發現搬遷了以後效率並沒有提公升或者反而有一定的下降。

其中乙個主要的原因就是我們在操作的時候通常都是用 delete 語句來刪除一些歷史資料,但 delete 語句是不會釋放表空間占用的資料塊,也就是說資料是刪掉了,但位置還保留著,這塊空著的表空間只能由以後再 insert 進來的時候填充。很顯然這不是我們想要的效果,我們想要的就是減少表空間,提高 sql 的執行效率。

下面說下解決的辦法,思路就是用 alter table xx move tablespace xx; 語句將表先移到乙個空閒的表空間上再移回來,網上也有人通過查 user_tables 裡面的 block 欄位來觀察 move 表空間前後的占用的塊,那個裡面只是乙個統計的結果,不能作為實際考量,因為在 move tablespace 的時候所有欄位的 rowid 都是重新建立的,沒有資料的那些塊自然也就丟掉了,再 move 回來。可以理解成類似於在其他表空間建立乙個臨時表,把當前的表刪掉重新建回來。

還有一點要注意的就是,move 的同時既然 rowid 是重新建立的,那麼該錶上的索引自然也就失效了,再 move 回來以後別忘了把索引重新再建一下,要不然 sql 會報錯無法執行。

最後別忘了分析下表。analyze table xx compute statistics;

避免在雲遷移過程中宕機

在公共雲遷移期間,it團隊需要採取謹慎的步驟,以避免聽到 系統宕機 這種可怕的提示。隨著組織遷移到基於雲計算的基礎設施,it團隊需要在遷移過程中保持可用性。但是,考慮到所有複雜性,在雲計算遷移過程中,防止宕機或最小化停機時間並不容易。雲計算團隊需要考慮資料不一致,監控不同的軟體版本,並檢查其網路連線...

避免在雲遷移過程中宕機

在公共雲遷移期間,it團隊需要採取謹慎的步驟,以避免聽到 系統宕機 這種可怕的提示。隨著組織遷移到基於雲計算的基礎設施,it團隊需要在遷移過程中保持可用性。但是,考慮到所有複雜性,在雲計算遷移過程中,防止宕機或最小化停機時間並不容易。雲計算團隊需要考慮資料不一致,監控不同的軟體版本,並檢查其網路連線...

jira資料遷移過程

jira資料遷移是常見的軟體開發過程中遇到的問題 在資料遷移過程中下面講解簡單的過程 1.配置好jdk 2.配置好mysql資料庫 3.配置好jira 4.在mysql中建立乙個資料庫,必須在建立時設定好資料庫的字符集。為這個資料庫建立乙個使用者。為這個使用者賦值遠端連線許可權。5.一切配置好之就可...