?? db2 的表空間.txt
字號:
CU-DB2討論區(qū)精華帖
ChinaUnix.net > 論壇首頁 > 精華首頁 > DB2精華區(qū) > 正文
[原]: DB2 的表空間
http://www.chinaunix.net 作者:足球小子 發(fā)表于:2003-07-02 09:05:59
DB2 的表空間按管理方式分為兩種:系統(tǒng)管理空間(System Management
Space,SMS)和數(shù)據(jù)庫管理空間(Database Management Space,DMS)。
按類型分為:規(guī)則表空間、長整數(shù)表空間、系統(tǒng)臨時表空間、用戶臨時表空間
。其中長整數(shù)表空間只能是DMS的。
規(guī)則表空間中包含用戶數(shù)據(jù)的表。默認(rèn)用戶表空間名為USERSPACE1,索引也存
儲在規(guī)則表空間中,另外系統(tǒng)目錄表也放在規(guī)則表空間中。
默認(rèn)的系統(tǒng)目錄表空間名為SYSCATSPACE。
臨時表空間分為系統(tǒng)臨時表空間和用戶臨時表空間。系統(tǒng)臨時表空間用來存儲
各種數(shù)據(jù)操作(排序、重組表、創(chuàng)建索引、連接表)中所需的內(nèi)部臨時數(shù)據(jù),雖
然可以創(chuàng)建任意多個系統(tǒng)臨時表空間,但建議用戶只使用大多數(shù)表所使用的頁大
小創(chuàng)建一個,默認(rèn)系統(tǒng)臨時表空間名為TEMPSPACE1。用戶臨時表空間用來存儲已
說明全局臨時表(已說明全局臨時表存儲的是應(yīng)用程序臨時數(shù)據(jù))。用戶臨時表
空間不是在數(shù)據(jù)庫創(chuàng)建時默認(rèn)創(chuàng)建的。
SMS每個容器是操作系統(tǒng)的文件空間中的一個目錄;DMS每個容器是一個固定的
、預(yù)分配的文件,或是物理設(shè)備。
SMS的管理比較簡單,由操作系統(tǒng)自動管理,空間的大小隨數(shù)據(jù)量的變化系統(tǒng)
自動調(diào)整。
DMS是由數(shù)據(jù)庫管理的,空間大小在創(chuàng)建時確定,空間不夠時要手工添加或刪
除部分?jǐn)?shù)據(jù)以釋放空間。
大多數(shù)情況下,DMS的性能比SMS好。
用命令行方式創(chuàng)建SMS表空間的簡單語法:
CREATE TABLESPACE <NAME> MANAGED BY SYSTEM USING ('<path>')
用命令行方式創(chuàng)建DMS表空間的簡單語法:
CREATE TABLESPACE <NAME> MANAGED BY DATABASE USING (FILE '<path>'
<size>
例一:在OS/2或Windows NT上創(chuàng)建一個SMS表空間:
CREATE TABLESPACE RESOURCE MANAGED BY SYSTEM
USING ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp')
例二:在OS/2上創(chuàng)建一個DMS表空間,使用各自有5000頁的兩個文件容器:
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE
USING (FILE 'd:\db2data\acc_tbsp' 5000,
FILE 'e:\db2data\acc_tbsp' 5000)
例三:在UNIX上創(chuàng)建一個DMS表空間,使用各有10000頁的3個邏輯卷:
CREATE TABLESPACE RESOURCE MANAGED BY DATABASE
USING (DEVICE '/dev/rdblv6' 10000,
DEVICE '/dev/rdblv7' 10000,
DEVICE '/dev/rdblv8' 10000)
OVERHEAD 24.1
TRANSFERRATE 0.9
上面語句中提到的UNIX設(shè)備必須已經(jīng)存在,且實例擁有者和SYSADM組必須能夠?qū)?
入它們。
例四:在UNIX分區(qū)數(shù)據(jù)庫中稱為ODDNODEGROUP的節(jié)點組上創(chuàng)建一個DMS表空間:
CREATE TABLESPACE PLANS MANAGED BY DATABASE
USING (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n1hd01' 40000) ON
NODE 1
(DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n3hd03' 40000) ON
NODE 3
(DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n5hd05' 40000) ON
NODE 5
在此例中,ODDNODEGROUP節(jié)點組由編號為1、3、5的數(shù)據(jù)庫分區(qū)組成,在所有數(shù)據(jù)
庫分區(qū)上,都使用具有10000個4KB頁的 /dev/hdisk0 設(shè)備,另外,還為每個數(shù)據(jù)
庫分區(qū)說明了一個包含40000個4KB大小的頁的設(shè)備。
例五:在UNIX系統(tǒng)上,創(chuàng)建一個具有8KB頁大小的SMS表空間:
CREATE TABLESPACE SMS8K PAGESIZE 8192
MANAGED BY SYSTEM
USING ('FSMS_8K_1')
BUFFERPOOL BUFFPOOL8K
相關(guān)的緩沖池也必須具有相同的8KB頁大小。另外,創(chuàng)建的表空間只有在所引用的
緩沖池被激活后才能使用。
例六:創(chuàng)建系統(tǒng)臨時表空間:
系統(tǒng)臨時表只能存儲在系統(tǒng)臨時表空間中,所以數(shù)據(jù)庫必須始終至少有一個系
統(tǒng)臨時表空間。
CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp
MANAGED BY SYSTEM
USING ('d:\tmp_tbsp','e:\tmp_tbsp')
創(chuàng)建系統(tǒng)臨時表空間時,只能指定IBMTEMPGROUP節(jié)點組。
例七:創(chuàng)建用戶臨時表空間:
用戶臨時表空間用來存儲已說明的臨時表。
CREATE USER TEMPORARY TABLESPACE usr_tbsp
MANAGED BY DATABASE
USING (FILE 'd:\db2data\user_tbsp' 5000,
FILE 'e:\db2data\user_tbsp' 5000)
與常規(guī)表空間一樣,用戶臨時表空間可以在除IBMTEMPGROUP之外的任何節(jié)點組中
創(chuàng)建。創(chuàng)建用戶臨時表空間使用的默認(rèn)節(jié)點組是IBMDEFAULTGROUP。DECLARE
GLOBAL TEMPORARY TABLE 語句定義提供在用戶臨時表空間中使用的已說明臨時表
。
例八:將兩個新設(shè)備容器添加到UNIX上的一個表空間中:
ALTER TABLESPACE RESOURCE
ADD (DEVICE '/dev/rhd9' 10000,
DEVICE '/dev/rhd10' 10000)
例九:把UNIX上的表空間中的兩個設(shè)備容器改變大?。ㄓ?000頁改為2000頁)
ALTER TABLESPACE HISTORY
RESIZE (DEVICE '/dev/rhd7' 2000,
DEVICE '/dev/rhd8' 2000)
例十:在UNIX表空間中,擴充兩個設(shè)備容器(原本各含1000頁)
ALTER TABLESPACE HISTORY
EXTEND (DEVICE '/dev/rhd11' 1000,
DEVICE '/dev/rhd12' 1000)
操作后兩個設(shè)備的大小都從1000頁擴充至2000頁。不能縮小容器的大小。
可以給現(xiàn)存表空間重命名,而無須關(guān)心該表空間中的個別對象。重命名表空間時
,將更改所有引用該表空間的目錄記錄。不能重命名SYSCATSPACE表空間;不能重
命名處于前滾暫掛或正在前滾狀態(tài)的表空間。
刪除表空間時,也會刪除該表空間中的所有數(shù)據(jù),釋放容器,去除目錄項,并導(dǎo)
致該表空間中定義的所有對象都被刪除或標(biāo)記為無效??梢酝ㄟ^刪除表空間來重
新使用該表空間中的容器,但是在試圖重新使用這些容器之前,必須COMMIT該
DROP TABLESPACE命令。
【發(fā)表回復(fù)】【查看CU論壇原帖】【關(guān)閉】
--------------------------------------------------------------------------------
大連老K 回復(fù)于:2003-07-02 09:44:29
不錯,給你加精
Copyright ? ChinaUnix.net
* 請尊重我們的勞動,轉(zhuǎn)載請注明出自ChinaUnix.net及作者名 *
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -