Bảng phân mảnh thì xử lý thế nào? Table FRAGMENTED how to do?

Trong quá trình thao tác vận hành csdl sẽ bị phân mảnh vì các thủ tục update, delete….

— kiểm tra phân mảnh

select table_name,avg_row_len,round(((blocks*16/1024)),2)||’MB’ “TOTAL_SIZE”,

round((num_rows*avg_row_len/1024/1024),2)||’Mb’ “ACTUAL_SIZE”,

round(((blocks*16/1024)-(num_rows*avg_row_len/1024/1024)),2) ||’MB’ “FRAGMENTED_SPACE”,

(round(((blocks*16/1024)-(num_rows*avg_row_len/1024/1024)),2)/round(((blocks*16/1024)),2))*100 “percentage”

from all_tables WHERE table_name=’&TABLE_NAME’;

Nếu xuất hiện bản ghi là đã có hiện tượng phân mảnh rồi

— thực hiện chống phân mảnh bằng cách move table đó (move sẽ di chuyển ngay trong TBS hiện tại của table hoặc có thể move sang TBS khác)

alter table <table_name> move;

— có thể move sang tbs khác:

alter table <table_name> enable row movement;

alter table <table_name> move tablespace <new_tablespace>

— hoặc có thể shrink 1 bảng

— Cho phép row movement.

ALTER TABLE <table_name> ENABLE ROW MOVEMENT;

— Khôi phục không gian lưu trữ và sửa đổi high water mark (HWM).

ALTER TABLE <table_name> SHRINK SPACE;

— Khôi phục không gian lưu trữ nhưng không sửa đổi the high water mark (HWM).

ALTER TABLE <table_name> SHRINK SPACE COMPACT;

— Recover không gian lưu trữ cho đối tượng và mọi đối tượng phụ thuộc

ALTER TABLE <table_name> SHRINK SPACE CASCADE;

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận