Trong Oracle Database, quản trị việc trì hoãn tạo Segment (Deferring Segment Creation) là một phương pháp để cải thiện hiệu suất và tối ưu hóa việc sử dụng không gian lưu trữ. Khi trì hoãn tạo Segment, Oracle không tạo Segment vật lý cho bảng hoặc Index ngay khi chúng được tạo, mà chỉ khi có dữ liệu đầu tiên được chèn vào. Điều này giúp giảm không gian lưu trữ không cần thiết và cải thiện thời gian tạo đối tượng.
Kích Hoạt Tính Năng Trì Hoãn Tạo Segment
Kiểm Tra Thiết Lập Hiện Tại:
Trước tiên, hãy kiểm tra xem tùy chọn trì hoãn tạo Segment có đang được bật không:
SHOW PARAMETER deferred_segment_creation;
Nếu giá trị là TRUE, tính năng này đang được bật. Nếu là FALSE, bạn có thể bật nó ở mức hệ thống hoặc mức session.
Bật Tính Năng Trì Hoãn Tạo Segment:
ALTER SYSTEM SET deferred_segment_creation = TRUE SCOPE = BOTH; ALTER SESSION SET deferred_segment_creation = TRUE;
Tạo Bảng Với Tính Năng Trì Hoãn Tạo Segment
Khi tính năng trì hoãn tạo Segment được bật, việc tạo bảng sẽ không tạo Segment vật lý cho đến khi dữ liệu đầu tiên được chèn vào bảng.
CREATE TABLE tab2 ( id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, content VARCHAR2(255), date_time TIMESTAMP );
Kiểm Tra Tạo Segment
Bạn có thể kiểm tra việc tạo Segment bằng cách sử dụng view DBA_SEGMENTS. Khi bảng được tạo nhưng chưa có dữ liệu, sẽ không có Segment nào được ghi nhận cho bảng này.
SELECT segment_name, segment_type, tablespace_name FROM dba_segments WHERE segment_name = 'TAB2';
Chúng ta đã tạo bảng bên trên nhưng chưa có Segments nào được tạo cả. => vì đang sử dụng trì hoãn tạo segment.
Chèn Dữ Liệu Và Tạo Segment
Khi bạn chèn dữ liệu vào bảng, Oracle sẽ tự động tạo Segment vật lý cho bảng này.
INSERT INTO TAB2 (content, date_time) VALUES ('Vietnam', SYSDATE);
Sau khi chèn dữ liệu, bạn có thể kiểm tra lại view DBA_SEGMENTS để thấy rằng Segment đã được tạo.
SELECT segment_name, segment_type, tablespace_name FROM dba_segments WHERE segment_name = 'TAB2';
=>> sau khi thực hiện insert data thành công vào bảng thì đã có segment xuất hiện.
Lợi Ích Của Việc Trì Hoãn Tạo Segment
- Tiết Kiệm Không Gian Lưu Trữ: Giảm không gian lưu trữ không cần thiết cho các bảng hoặc Index không chứa dữ liệu.
- Tăng Tốc Độ Tạo Đối Tượng: Cải thiện thời gian tạo bảng và Index, đặc biệt hữu ích trong các hệ thống phát triển và thử nghiệm.
- Quản Lý Hiệu Quả: Giúp quản trị viên cơ sở dữ liệu quản lý không gian lưu trữ hiệu quả hơn.
Bằng cách hiểu và áp dụng quản trị trì hoãn tạo Segment, bạn có thể tối ưu hóa không gian lưu trữ và cải thiện hiệu suất của Oracle Database một cách hiệu quả.