• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            DB2表空間管理

            Posted on 2009-07-31 13:46 Prayer 閱讀(341) 評論(0)  編輯 收藏 引用 所屬分類: DB2
            表空間是數(shù)據(jù)庫及存儲在該數(shù)據(jù)庫中的表之間的邏輯層。表空間在數(shù)據(jù)庫中創(chuàng)建,表在表空間中創(chuàng)建。

              使用表空間的一個明顯的好處是能夠把數(shù)據(jù)合理的分布存儲在不同的磁盤上或者存儲在磁盤的不同位置上,有助于提高數(shù)據(jù)存取的效率。

              DB2 的表空間按管理方式分為兩種:系統(tǒng)管理空間(System Management Space,SMS)和數(shù)據(jù)庫管理空間(Database Management Space,DMS)。

              按類型分為:規(guī)則表空間、大對象表空間、系統(tǒng)臨時表空間、用戶臨時表空間。

              規(guī)則表空間中包含用戶數(shù)據(jù)的表。默認用戶表空間名為USERSPACE1,索引也存儲在規(guī)則表空間中,另外系統(tǒng)目錄表也放在規(guī)則表空間中。默認的系統(tǒng)目錄表空間名為SYSCATSPACE。

              臨時表空間分為系統(tǒng)臨時表空間和用戶臨時表空間。

              系統(tǒng)臨時表空間用來存儲各種數(shù)據(jù)操作(排序、重組表、創(chuàng)建索引、連接表)中所需的內部臨時數(shù)據(jù),雖然可以創(chuàng)建任意多個系統(tǒng)臨時表空間,但建議用戶只使用大多數(shù)表所使用的頁大小創(chuàng)建一個,默認系統(tǒng)臨時表空間名為TEMPSPACE1。

              用戶臨時表空間用來存儲已說明全局臨時表(已說明全局臨時表存儲的是應用程序臨時數(shù)據(jù))。用戶臨時表空間不是在數(shù)據(jù)庫創(chuàng)建時默認創(chuàng)建的。

              SMS每個容器是操作系統(tǒng)的文件空間中的一個目錄;DMS每個容器是一個固定的、預分配的文件,或是物理設備。

              SMS的管理比較簡單,由操作系統(tǒng)自動管理,空間的大小隨數(shù)據(jù)量的變化系統(tǒng)自動調整。

              DMS是由數(shù)據(jù)庫管理的,空間大小在創(chuàng)建時確定,空間不夠時要手工添加或刪除部分數(shù)據(jù)以釋放空間。

              大多數(shù)情況下,DMS的性能比SMS好。

              用命令行方式創(chuàng)建SMS表空間的簡單語法:

              CREATE TABLESPACE <NAME>; MANAGED BY SYSTEM USING ('<path>;')

              例一:在Windows上創(chuàng)建一個SMS表空間:

              CREATE TABLESPACE RESOURCE MANAGED BY SYSTEM USING ('d:\acc_tbsp','e:\acc_tbsp','f:\acc_tbsp')

              完成的結果為在D、E、F三個磁盤上創(chuàng)建了三個名稱為acc_tbsp的文件夾,每個文件夾下面都有一個名為SQLTAG.NAM的文件。

              例二:刪除例一所創(chuàng)建的SMS表空間。

              DROP TABLESPACE RESOURCE

              運行完這條命令,相應的表空間會從DB2注冊表中刪除,但是磁盤上的三個文件夾仍然存在,需要手工刪除。

              用命令行方式創(chuàng)建DMS表空間的簡單語法:

              CREATE TABLESPACE <NAME>; MANAGED BY DATABASE USING (FILE '<path>;' <size>

              或者

              CREATE TABLESPACE <NAME>; MANAGED BY DATABASE USING (DEVICE '<path>;' <size>

              例三:在Windows上創(chuàng)建一個DMS表空間,使用各自有5000頁的兩個文件容器:

              CREATE TABLESPACE RESOURCE MANAGED BY DATABASE USING (FILE 'd:\db2data\acc_tbsp' 5000, FILE 'e:\db2data\acc_tbsp' 5000)

              運行結果為:在D、E磁盤的db2data文件夾下面各創(chuàng)建了一個名為acc_tbsp的文件,大小都為20000K(默認情況下每頁大小為4K)。

              例四:在例三所創(chuàng)建的表空間中添加一個容器。

              ALTER TABLESPACE RESOURCE ADD(FILE 'f:\db2data\acc_tbsp' 5000)

              運行的結果為在RESOURCE表空間中包含了三個容器(文件):d:\db2data\acc_tbsp、 e:\db2data\acc_tbsp、 f:\db2data\acc_tbsp。

              例五:用RESIZE子句更改例三所創(chuàng)建的表空間的容器的大小。

              ALTER TABLESPACE RESOURCE RESIZE (file 'd:\db2data\acc_tbsp' 8000, file 'e:\db2data\acc_tbsp' 8000, file 'f:\db2data\acc_tbsp' 8000)

              每個容器(文件)的大小變?yōu)?000頁。把容器的容量變大不會出錯,但是如果容器中的數(shù)據(jù)已經(jīng)充滿,再把容器的容量縮小,則會引起錯誤。

              例六:用EXTEND子句更改例三所創(chuàng)建的表空間的容器的大小。

              ALTER TABLESPACE RESOURCE EXTEND (file 'd:\db2data\acc_tbsp' 1000, file 'e:\db2data\acc_tbsp' 1000, file 'f:\db2data\acc_tbsp' 1000)

              該命令的運行結果為在原有容量的基礎之上,每個容器再增加1000頁。

              例七:刪除例三中創(chuàng)建的DMS表空間。

              DROP TABLESPACE RESOURCE

              運行的結果為在DB2的注冊表中把RESOURCE表空間刪除,同時在磁盤上把相對應的文件夾和文件都一起自動刪除。

              例八:在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)

              上面語句中提到的UNIX設備必須已經(jīng)存在,且實例擁有者和SYSADM組必須能夠寫入它們。

              SMS與DMS的對比

                      特性                                     SMS       DMS

              能夠在表空間中動態(tài)增加容器的數(shù)目嗎                N         Y

              能夠把索引數(shù)據(jù)存放到不同表空間的表中嗎            N         Y

              能夠把大對象數(shù)據(jù)存放到不同表空間的表中嗎          N         Y

              表可以分散存放到多個表空間中嗎                    N         Y

              僅在需要時才分配空間嗎                            Y         N

              表空間可以被放在不同的磁盤中嗎                    Y         N

              創(chuàng)建之后,區(qū)段大小能夠改變嗎                      N         N

              例九:創(chuàng)建系統(tǒng)臨時表空間。

              CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp MANAGED BY SYSTEM USING(‘d:\tmp_tbsp’,’e:\tmp_tbsp’)

              系統(tǒng)臨時表只能存儲在系統(tǒng)臨時表空間中,所以數(shù)據(jù)庫必須始終至少有一個系統(tǒng)臨時表空間。

              例十:創(chuàng)建用戶臨時表空間。

              CREATE USER TEMPORARY TABLESPACE usr_tbsp MANAGED BY DATABASE USING(FILE ‘d:\db2data\user_tbsp’ 5000, FILE ‘e:\db2data\user_tbsp’ 5000)

              用戶臨時表空間用于存儲已說明的臨時表(用 DECLARE GLOBAL TEMPORARY TABLE 語句定義)

              例十一:用RENAME語句給表空間重命名

              RENAME TABLESPACE RESOURCE TO RES1

              用該語句給表空間重命名之后,將自動更改所有引用該表空間的目錄記錄,所以無須關心該表空間中的個別對象。

              例十二:在RESOURCE表空間中創(chuàng)建一張名為T1的表

              CREATE TABLE T1(ABC INT) IN RESOURCE

            精品午夜久久福利大片| 亚洲一区精品伊人久久伊人| 久久精品国产亚洲AV影院| 国产无套内射久久久国产| 久久se精品一区精品二区| 久久久久亚洲av无码专区喷水| 香蕉久久夜色精品国产2020| 久久久久久久综合综合狠狠| 久久久99精品成人片中文字幕| 久久996热精品xxxx| 国产精品99久久久久久www| 国产精品激情综合久久| 国产精品成人久久久久久久| 精品人妻伦一二三区久久| 777久久精品一区二区三区无码| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产精品免费看久久久| 国内精品久久久久久99蜜桃| 精品久久久久久无码专区| www.久久热| 久久精品国产精品亜洲毛片| 少妇被又大又粗又爽毛片久久黑人 | 亚洲日韩欧美一区久久久久我| 久久精品免费全国观看国产| 无码人妻精品一区二区三区久久| 亚洲狠狠婷婷综合久久久久| 色综合合久久天天给综看| 久久精品国产亚洲7777| 亚洲国产成人久久一区WWW| 久久久无码精品亚洲日韩京东传媒 | 久久精品无码一区二区三区免费| 亚洲欧洲久久av| 潮喷大喷水系列无码久久精品| 国产成人香蕉久久久久 | 一本大道久久香蕉成人网| 久久亚洲私人国产精品| 久久经典免费视频| 成人国内精品久久久久一区| 亚洲国产成人久久笫一页| 久久久久99精品成人片试看| 久久久久九九精品影院|