程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle創建表空間的語法

Oracle創建表空間的語法

編輯:Oracle數據庫基礎

表空間是Oracle數據庫中的重要概念,下面就為您詳細介紹Oracle創建表空間的語法,希望可以讓您對Oracle創建表空間有更深的了解。

Oracle創建表空間語法描述:

CREATE [UNDO] TABLESPACE tablespace_name

[DATAFILE datefile_spec1 [,datefile_spec2] ......

[ { MININUM EXTENT integer [k|m]

| BLOCKSIZE integer [k]

|logging clause

|FORCE LOGGING

|DEFAULT {data_segment_compression} storage_clause

|[online|offline]

|[PERMANENT|TEMPORARY]

|extent_manager_clause

|segment_manager_clause}]

1、undo

說明系統將創建一個回滾表空間。

在9i中數據庫管理員可以不必管理回滾段,只有建立了undo表空間,系統就會自動管理回滾段的分配,回收的工作。當然,也可以創建一般的表空間,在上面創建回滾段.不過對於用戶來說,系統管理比自己管理要好很多.如果需要自己管理,請參見回滾段管理的命令詳解.

當沒有為系統指定回滾表空間時,系統將使用system系統回滾段來進行事務管理。

2、tablespace

指出表空間的名稱。

3、datafile datefile_spec1

指出表空間包含什麼空間文件。datefile_spec1 是形如 ['filename'] [SIZE integer [ K | M ]] [REUSE] [autoextend_clause]

[autoextend_clause]是形如: AUTOEXTEND { OFF | ON [ NEXT integer [ K | M ] ] [maxsize_clause] }

其中filename是數據文件的全路徑名,size是文件的大小,REUSE表示文件是否被重用.

AUTOEXTEND表明是否自動擴展. OFF | ON 表示自動擴展是否被關閉.NEXT 表示數據文件滿了以後,擴展的大小.

maxsize_clause表示數據文件的最大大小.形如MAXSIZE { UNLIMITED | integer [ K | M ] }.UNLIMITED 表示無限的表空間.integer是數據文件的最大大小.

DATAFILE 'D:\Oracle\oradata\IMAGEDATA01.dbf' SIZE 2000M,

'D:\Oracle\oradata\IMAGEDATA02.dbf' SIZE 2000M

4、MININUM EXTENT integer [k|m]

指出在表空間中范圍的最小值。這個參數可以減小空間碎片,保證在表空間的范圍是這個數值的整數倍。

5、BLOCKSIZE integer [k]

這個參數可以設定一個不標准的塊的大小。如果要設置這個參數,必須設置db_block_size,至少一個db_nk_block_size,並且聲明的integer的值必須等於db_nk_block_size.

注意:在臨時表空間不能設置這個參數。

6、logging clause

這個子句聲明這個表空間上所有的用戶對象的日志屬性(缺省是logging),包括表,索引,分區,物化視圖,物化視圖上的索引,分區。

7、FORCE LOGGING

使用這個子句指出表空間進入強制日志模式。此時,系統將記錄表空間上對象的所有改變,除了臨時段的改變。這個參數高於對象的nologging選項。

注意:設置這個參數數據庫不行open並且出於讀寫模式。而且,在臨時表空間和回滾表空間中不能使用這個選項。

8、DEFAULT storage_clause

聲明缺省的存儲子句。

9、online|offline

改變表空間的狀態。online使表空間創建後立即有效.這是缺省值.offline使表空間創建後無效.這個值,可以從dba_tablespace中得到。

10、PERMANENT|TEMPORARY

指出表空間的屬性,是永久表空間還是臨時表空間。永久表空間存放的是永久對象,臨時表空間存放的是session生命期中存在的臨時對象。這個參數 生成的臨時表空間創建後一直都是字典管理,不能使用extent management local選項。如果要創建本地管理表空間,必須使用create temporary tablespace

注意,聲明了這個參數後,不能聲明block size

11、extent_management_clause

這是最重要的子句,說明了表空間如何管理范圍。一旦你聲明了這個子句,只能通過移植的方式改變這些參數。

如果希望表空間本地管理的話,聲明local選項。本地管理表空間是通過位圖管理的。autoallocate說明表空間自動分配范圍,用戶不能指定范圍的大小。只有9.0以上的版本具有這個功能。uniform說明表空間的范圍的固定大小,缺省是1m。

不能將本地管理的數據庫的system表空間設置成字典管理。

Oracle公司推薦使用本地管理表空間。

如果沒有設置extent_management_clause,Oracle會給他設置一個默認值。如果初始化參數compatible小於9.0.0,那麼系統創建字典管理表空間。如果大於9.0.0,那麼按照如下設置:

如果沒有指定default storage_clause,Oracle創建一個自動分配的本地管理表空間。

否則,如果指定了mininum extent,那麼oracle判斷mininum extent 、initial、next是否相等,以及pctincrease是否=0.如果滿足以上的條件,oracle創建一個本地管理表空間,extent size是initial.如果不滿足以上條件,那麼Oracle將創建一個自動分配的本地管理表空間。

如果沒有指定mininum extent。initial、那麼oracle判斷next是否相等,以及pctincrease是否=0。如果滿足oracle創建一個本地管理表空間並指定uniform。否則Oracle將創建一個自動分配的本地管理表空間。

注意:本地管理表空間只能存儲永久對象。如果你聲明了local,將不能聲明default storage_clause,mininum extent、temporary.

EXTENT MANAGEMENT LOCAL

12、segment_management_clause

SEGMENT SPACE MANAGEMENT AUTO 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved