表結構分析
建表語句
CREATE TABLE table_name(table_name VARCHAR2(10),table_name1 int(5),)
ALTER語句
ALTER TABLE table_name ADD column_name datatype
ALTER TABLE table_name MODIFY (column_name datatype)oracle
oracle ddlspa
CREATE TABLE "CS_GDBZDATA"."ACCT_WORK_REGISTER" ( "CURDATE" VARCHAR2(10) NOT NULL ENABLE, "MWORKBEGINTIME" VARCHAR2(8), "MWORKENDTIME" VARCHAR2(8), "AWORKBEGINTIME" VARCHAR2(8), "AWORKENDTIME" VARCHAR2(8), "NWORKBEGINTIME" VARCHAR2(8), "NWORKENDTIME" VARCHAR2(8), "WEEK" VARCHAR2(1), "WORKFLAG" VARCHAR2(10), "AREATYPE" VARCHAR2(10), "WORKFLAGHK" VARCHAR2(10), "WORKFLAGMC" VARCHAR2(10) ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "CS_GDBZDATATBS" ; ALTER TABLE "CS_GDBZDATA"."ACCT_WORK_REGISTER" MODIFY ("CURDATE" NOT NULL ENABLE);
這些參數涉及到存儲過程
通常就默認
可根據業務需求相應變動
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
關鍵字段解釋
這時候 PCTFREE 表明着設定爲 10 ,意思就是說,當 BLOCK 使用到達 90% 的時候,就不能夠在使用了,
這個 BLOCK 應該從 FREELIST 列表中移除 (un-link) 。
爲什麼要保留 10% 的空間呢?
這是爲了提供 update 數據時所可能增長的空間使用,若是空間保留的過小,就容易發生 row chaining 。
假設 PCTUSED 爲 40 ,表明當咱們把水杯的水喝到剩下 40% 如下時,侍者就會知道須要加水了。
若是說 PCTUSED 設的太大,例如70 隱含的意義是,這個杯子的利用率增長,可是侍者頻繁的服務形成了負荷 (I/O Overhead) 。
喝水( 如同 DELETE 事務操做 ) ,放回 FREELIST ,加水 ( 如同 INSERT 事務操做 ) 。
INITRANS 指的是一個 BLOCK 上初始預分配給並行交易控制的空間 (ITLs)
MAXTRANS 指的是若是 INITRANS 空間不夠用了,就會自動擴展 ITL ,直到最大值也就是 MAXTRANS 值爲止
若是你建庫的時候寫上LOGGING,表時你想在建庫及隨後的操做語句中記錄日誌log.
NOCOMPRESS LOB是對大對象字段LOB不壓縮日誌