表空間是 Oracle 邏輯儲存管理的核心單位,所有使用者物件皆須歸屬某表空間。本文以實際 CREATE TABLESPACE 語法為例,逐條拆解七大子句含義與最佳實務,助你精準掌控儲存配置。
CREATE TABLESPACE "SAMPLE"
LOGGING
DATAFILE 'D:\Oracle\ORADATA\ORA92\LUNTAN.ora' SIZE 5M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE ...,存放使用者資料(表、索引等),最常用。CREATE TEMPORARY TABLESPACE ...,供排序、雜湊連接等操作產生的暫存資料,不產生重做日誌。CREATE UNDO TABLESPACE ...,儲存交易回滾資訊,支援閃回查詢與讀取一致性。後兩者為系統管理特殊表空間,一般使用者僅使用永久表空間。
建議:空表空間建立階段可用 NOLOGGING 加速,資料導入後立即備份並切回 LOGGING 模式。
DATAFILE 'path1' SIZE 5M, 'path2' SIZE 10M可選擇性指定 BLOCKSIZE 8K 等,須與 db_nk_cache_size 參數配合。一般沿用資料庫標準區塊大小即可,特殊需求(如大量 LOB)可考慮較大區塊。
CREATE TABLESPACE "APP_DATA"
DATAFILE '/u01/app/oracle/oradata/APP_DATA01.dbf' SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 10G,
'/u02/app/oracle/oradata/APP_DATA02.dbf' SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 10G
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M
SEGMENT SPACE MANAGEMENT AUTO;
UNIFORM SIZE 1M:固定區域大小,適合物件大小一致的場景,零碎片。AUTOALLOCATE(預設):系統自動決定區域大小(64K, 1M, 8M, 64M),通用性強。表空間設計關乎儲存效能、可用性與維運彈性。熟悉七大子句語意,依業務特性選擇類型、日誌模式、管理方式與區域策略,是 DBA 建立穩健儲存基礎設施的關鍵能力。