Oracle
在 ORACLE 12 C 中創建新表時設置 PCTUSED 等參數
在 ORACLE 12 C 中創建新表時,是否需要顯式設置 PCTUSED、PCTFREE、INITRANS、MAXTRANS、STORAGE 等參數(如下例所示)?
或者 ORACLE 會自動有效地設置這些值嗎?開發人員通常傾向於忽略這些參數,因為他們只關注表/模式/數據模型的創建——任何應用程序執行所需的“最低限度”!
CREATE TABLE TABLE1 ( COL1 VARCHAR2(28 BYTE) NOT NULL ..... ) PCTUSED 40 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT ) LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING;
“或者 ORACLE 會自動有效地設置這些值”
好吧,Oracle 會預設將它們設置為某些東西……雖然可能不是很“有效”;)為此,您將需要對您需要的東西進行一些研究和基礎工作。
正如 Wernfried 在評論中提到的,本地管理的表空間是要走的路,一旦你定義了這些,為每個表指定這些選項是浪費的——Oracle 將忽略它們。
通常認為為使用的不同類型的表設置某些類型的表空間會更好。
小型的、主要是只讀的表:1 個表空間:設置為小的 Extent 大小和 small/0 pctincrease。
更大、高度易變的表:另一個表空間:更大的範圍大小、更大的 pctincrease ..
等等。你需要弄清楚你的需求是什麼,你有什麼樣的表(然後你想要什麼表空間/儲存選項)。