Thứ Năm, 4 tháng 3, 2021

TRUNCATE TABLE không giải phóng không gian (space) khỏi tablespace

Khi chúng ta xóa các hàng khỏi bảng bằng lệnh DELETE, các extent được phân bổ cho bảng sẽ không được giải phóng và bảng vẫn giữ chúng, trong khi khi sử dụng TRUNCATE với mệnh đề DROP STORAGE (là mặc định), nó sẽ giải phóng không gian trở lại không gian bảng.

Nhưng chúng tôi thấy các trường hợp rằng việc truncte sẽ không giải phóng không gian trở lại tablespace

Câu trả lời rất đơn giản, Khi truncate một bảng, Oracle sẽ phân bổ lại tất cả không gian được sử dụng bởi các row đã loại bỏ ngoại trừ không gian được chỉ định bởi tham số lưu trữ MINEXTENTS. Tuy nhiên, nếu minextent (cùng với giá trị ban đầu) đủ lớn, không gian này KHÔNG được giải phóng ngay cả sau khi truncate.

CREATE TABLE XYZ
( COL1 VARCHAR2(45 BYTE),
COL2 VARCHAR2(45 BYTE),
COL3 VARCHAR2(6 BYTE) )
TABLESPACE XYZ_DATA
RESULT_CACHE (MODE DEFAULT)
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 100M
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;

Từ những điều trên, chúng ta có thể thấy rằng kích thước phạm vi ban đầu chính nó là 100M (đây là bảng partition, còn đối với bảng partition thì dung lượng này sẽ rất lớn). Nếu chúng tôi cắt bớt bảng này có tổng kích thước là 586 MB, Oracle sẽ chỉ phân bổ lại 486 MB và sẽ giữ 100 MB đó gắn liền với bảng.

Để thu hồi được toàn bộ ta làm như sau:

1. Export bảng để lưu dữ liệu.

2. Drop bảng và tạo lại nó với kích thước INITIAL  nhỏ .

3. Import dữ liệu trở lại.

=============================

* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
hoặc
https://bit.ly/oaz_fp
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database
Các tìm kiếm liên quan đến học oracle
database
Tự học Oracle
Tài liệu Oracle 12c tiếng Việt
Hướng dẫn sử dụng Oracle Database
Oracle SQL cơ bản
Oracle SQL là gì
Khóa học Oracle Hà Nội
Học chứng chỉ Oracle ở đầu
Khóa học Oracle online
khóa học pl/sql
học dba
học dba ở việt nam
khóa học dba
khóa học dba sql
tài liệu học dba oracle
Khóa học Oracle online
học oracle sql
học oracle ở đâu tphcm
học oracle bắt đầu từ đâu
học oracle ở hà nội
oracle database tutorial
oracle database 12c
oracle database là gì
oracle database 11g
oracle download
oracle database 19c
oracle dba tutorial
oracle tunning
sql tunning
oracle 12c
oracle dataguard
oracle goldengate
oracle weblogic
oracle exadata
hoc solaris
hoc linux
hoc aix

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master