• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            拋磚引玉,實例講解DB2中的表空間

            Posted on 2008-08-12 13:41 Prayer 閱讀(227) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫,SQL

            表空間數據庫及存儲在該數據庫中的表之間的邏輯層。表空間在數據庫中創建,表在表空間中創建。

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

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

            按類型分為:規則表空間、大對象表空間、系統臨時表空間、用戶臨時表空間。

            規則表空間中包含用戶數據的表。默認用戶表空間名為USERSPACE1,索引也存儲在規則表空間中,另外系統目錄表也放在規則表空間中。默認的系統目錄表空間名為SYSCATSPACE。

            臨時表空間分為系統臨時表空間和用戶臨時表空間。

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

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

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

            SMS的管理比較簡單,由操作系統自動管理,空間的大小隨數據量的變化系統自動調整。

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

            大多數情況下,DMS的性能比SMS好。

            用命令行方式創建SMS表空間的簡單語法:

            CREATE TABLESPACE ; MANAGED BY SYSTEM USING (' ;')

            例一:在Windows上創建一個SMS表空間:

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

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

            例二:刪除例一所創建的SMS表空間:

            DROP TABLESPACE RESOURCE

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

            用命令行方式創建DMS表空間的簡單語法:

            CREATE TABLESPACE ; MANAGED BY DATABASE USING (FILE ' ;'

            或者

            CREATE TABLESPACE ; MANAGED BY DATABASE USING (DEVICE ' ;'

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

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

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

            例四:在例三所創建的表空間中添加一個容器:

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

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

            例五:用RESIZE子句更改例三所創建的表空間的容器的大小:

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

            每個容器(文件)的大小變為8000頁。把容器的容量變大不會出錯,但是如果容器中的數據已經充滿,再把容器的容量縮小,則會引起錯誤。

            例六:用EXTEND子句更改例三所創建的表空間的容器的大小:

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

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

            例七:刪除例三中創建的DMS表空間:

            DROP TABLESPACE RESOURCE

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

            例八:在UNIX上創建一個DMS表空間,使用各有10000頁的3個邏輯卷:

            CREATE TABLESPACE RESOURCE MANAGED BY DATABASE USING (DEVICE '/dev/rdblv6' 10000, DEVICE '/dev/rdblv7' 10000, DEVICE '/dev/rdblv8' 10000)

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

            SMS與DMS的對比
            特性                                        SMS         DMS
                        能夠在表空間中動態增加容器的數目嗎           N           Y
                        能夠把索引數據存放到不同表空間的表中嗎       N           Y
                        能夠把大對象數據存放到不同表空間的表中嗎     N           Y
                        表可以分散存放到多個表空間中嗎               N           Y
                        僅在需要時才分配空間嗎                       Y           N
                        表空間可以被放在不同的磁盤中嗎               Y           N
                        創建之后,區段大小能夠改變嗎                 N           N

            例九:創建系統臨時表空間:

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

            系統臨時表只能存儲在系統臨時表空間中,所以數據庫必須始終至少有一個系統臨時表空間。

            例十:創建用戶臨時表空間:

            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表空間中創建一張名為T1的表:

            CREATE TABLE T1(ABC INT) IN RESOURCE

            久久91亚洲人成电影网站| 亚洲αv久久久噜噜噜噜噜| 精品熟女少妇AV免费久久 | 国产69精品久久久久9999APGF| 久久中文娱乐网| 亚洲综合精品香蕉久久网97| 久久国产精品99国产精| 国产精品久久久亚洲| 久久精品国产91久久综合麻豆自制| 久久99国产综合精品女同| 久久久久久久亚洲Av无码| 97久久久久人妻精品专区| 久久99热国产这有精品| 国产福利电影一区二区三区久久老子无码午夜伦不| 亚洲AV无码久久精品蜜桃| 久久香蕉超碰97国产精品 | 久久91精品久久91综合| 99久久人妻无码精品系列蜜桃| 精品久久久久久国产潘金莲| 久久91精品久久91综合| 久久国产精品波多野结衣AV| 欧美亚洲国产精品久久久久| 亚洲AV无码久久| 久久se精品一区二区影院| 久久精品日日躁夜夜躁欧美| 99久久久精品免费观看国产| 久久久久久国产精品免费免费| 综合久久一区二区三区 | 亚洲精品tv久久久久久久久久| 亚洲精品国产第一综合99久久| 无码人妻久久一区二区三区免费| 日产精品久久久久久久性色| 精品国产91久久久久久久a| 国内精品久久久久影院薰衣草 | 伊人久久无码精品中文字幕| 精品久久久无码人妻中文字幕豆芽 | 69国产成人综合久久精品| 亚洲国产婷婷香蕉久久久久久| 久久夜色精品国产网站| 久久久久久国产a免费观看不卡| 无码人妻少妇久久中文字幕蜜桃|