Oracle 11g學習筆記(四)

模式是一個數據庫對象的集合。模式爲一個數據庫用戶全部,並具備與該用戶相同的名稱。sql

建表時的考量
1.在建立表以前先設計表數據庫

  應用開發人員負責設計應用的元素,包括表。數據庫管理員負責設置存儲參數、爲表定義集羣。每一個表應知足如下幾點:
  表是標準化的;
  每一個列都具備合適的數據類型;
  容許爲空的列最後定義;
  當合適時表集羣化,節約空間,優化SQL語句的性能。性能

2.定義如何使用數據塊空間
  在本地化管理的表空間中,若是段空間是以MANUAL方式進行的,那麼就經過在建立表時定義PCTFREE和PCTUSED參數,影響空間使用率和空間預留的數量,用於更新數據塊的當前數據。
3.定義每一個表的位置
   若是具備合適的權限和表空間引用,則能夠在當前在線的任何表空間中建立新表。建議使用CREATE TABLE的TABLESPACE字句標識表空間來存儲新的表。若是沒有定義表空間,則會在用戶默認的表空間上建立表。
4.考慮並行建立表
   若是在CREATE TABLE字句中使用子查詢,則能夠在建立表時使用並行執行。因爲多個過程可以一塊兒工做用於建立表,因此可以提升建立的性能。
5.建立表時能夠考慮使用NOLOGGING
  爲了更高效地建立表,能夠考慮在CREATE TABLE AS SELECT語句中使用NOLOGGING字句。NOLOGGING能夠生成最少的重作日誌信息,這具備如下好處
    節約了重作日誌文件中的空間。
    減小了建立表的時間。
    提升了並行建立大表的性能。
6.估計表的大小,設置存儲參數
  在建立表前,首先要規劃表的大小,這是由於:
    能夠聯合使用表的估計大小,索引,回滾段和重作日誌文件的大小,肯定建立數據庫所須要的磁盤空間的總數;
    可使用單個表的估計值,更有效地管理磁盤空間。
7.規劃大表
  表和盤區的物理大小是沒有限制,可使用UNLIMITED和MAXEXTENTS關鍵字,簡化對大對象的規劃,減小空間浪費,提升空間使用率。優化

Oracle建議全部的變長字符域定義爲VARCHAR2,而不是VARCHAR。
建表時經常使用的數據類型操作系統

VARCHAR2(n)    可變長度的字符串,其中n用於指定字符串的最大長度,n<=4000
CHAR(n)    固定長度的字符串,n表示指定字符串的最大長度,n<=2000
NUMBER(p,s)    適用於固定長度的整數和浮點數,其中p表示精度,指定數字總位數;s表示標度,用於指定小數點的數字位數。
DATE    定義日期和時間數據,長度固定(7字節),範圍從公元前4712年的1月1日到公元9999年的12月31日
TIMESTAMP    定義日期和時間數據,顯示時,不只會顯示日期,也會顯示時間和上下午等信息
BINARY_FLOAT    定義浮點類型,比NUMBER的效率更高,32位
BINARY_DOUBLE    定義雙精度數字類型,64位
BLOB    大二進制對象,<=4GB
CLOB    大字符串對象,<=4GB
BFILE    外部的二進制文件,大小受操做系統的限制設計


建立表的語法
日誌

CREATE TABLE USER.table_name
{{COLUMN1 DATAYPE [DEFAULT expr] [COLUMN_CONSTRAINT]}}
{,{COLUMN2 DATAYPE [DEFAULT expr] [COLUMN_CONSTRAINT]}}
...
[CONSTRAINT table_constraint]
[CLUSTER cluster (COLUMN1 [COLUMN2]...)]
[PCTFREE n]
[PCTUSED n]
[STORAGE n]
[TABLESPACE tbs]
[ENABLE | DISABLE]
[AS QUERY]

參數說明
code

在Oracle11g中,雖然存儲參數NEXT,MINEXTENTS,MAXEXTENTS,PCTINCREASE等在建立表結構時能夠指定,可是,因爲Oracle 11g採用了自動空間管理,因此除了INITIAL參數外,其他參數都會變爲空值。
對象

相關文章
相關標籤/搜索