首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 擴展管理與儲存參數調優:PCTFREE/PCTUSED/FREELISTS 實戰指南

     編輯:Oracle 資料庫基礎

空間重用效率與插入效能天然對立,儲存參數 (PCTFREE/PCTUSED/FREELISTS/FREELIST GROUPS) 是平衡槓桿。

一、核心矛盾與參數影響

目標PCTUSED 設定副作用PCTFREE 設定副作用
高空間重用大值 (接近 100)塊快滿 → 再收少量行 → I/O 增加小值預留空間少 → 易產生 Row Migration
高插入效能小值塊近空才回 Freelist → 可收更多行 → I/O 減少大值預留充足 → 減少遷移但浪費空間

鐵律:EXTEND 新塊效能 > 重用現有塊。Oracle 擴展表比管理 Freelist 成本更低。

二、參數設定五大鐵律

  1. PCTUSED 必須能容納至少一行:否則 Freelist 滿是「死塊」,Oracle 讀 5 個死塊才延伸新塊,嚴重拖慢效能。
  2. Row Chaining/Migration 出現 → PCTFREE 過低 或 DB_BLOCK_SIZE 過小。LONG/RAW 超大欄位無法避免。
  3. 同時 INSERT 需同時 DELETE:單一清除作業會將所有空塊集中單一 Freelist,造成熱點。
  4. FREELISTS = 最大並發 INSERT 使用者數:如峰值 20 用戶同時插入 → FREELISTS=20。
  5. FREELIST GROUPS 僅用於 RAC/Parallel Server:值 = 存取該表的 Instance 數;單機忽略。

三、ALTER TABLE 線上微調

ALTER TABLE t PCTFREE 15 PCTUSED 40;
-- 僅影響新分配塊;現有塊需 REBUILD/移動表空間生效

四、ASSM (自動段空間管理) 時代建議

  • LMT + ASSM 完全取代 Freelist/PCTUSED 管理,參數被忽略。
  • 新建表空間預設 SEGMENT SPACE MANAGEMENT AUTO,零調優負擔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved