国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 02:41:31
字體:
來源:轉載
供稿:網友
  表空間是數據庫及存儲在該數據庫中的表之間的邏輯層。表空間在數據庫中創建,表在表空間中創建。  使用表空間的一個明顯的好處是能夠把數據合理的分布存儲在不同的磁盤上或者存儲在磁盤的不同位置上,有助于提高數據存取的效率。  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 (';') 123下一頁   例一:在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:db2dataacc_tbsp' 5000, FILE 'e:db2dataacc_tbsp' 5000)  運行結果為:在D、E磁盤的db2data文件夾下面各創建了一個名為acc_tbsp的文件,大小都為20000K(默認情況下每頁大小為4K)。  例四:在例三所創建的表空間中添加一個容器:  ALTER TABLESPACE RESOURCE ADD(FILE 'f:db2dataacc_tbsp' 5000)  運行的結果為在RESOURCE表空間中包含了三個容器(文件):d:db2dataacc_tbsp、 e:db2dataacc_tbsp、 f:db2dataacc_tbsp。  例五:用RESIZE子句更改例三所創建的表空間的容器的大小:  ALTER TABLESPACE RESOURCE RESIZE (file 'd:db2dataacc_tbsp' 8000, file 'e:db2dataacc_tbsp' 8000, file 'f:db2dataacc_tbsp' 8000) 上一頁123下一頁   每個容器(文件)的大小變為8000頁。把容器的容量變大不會出錯,但是假如容器中的數據已經布滿,再把容器的容量縮小,則會引起錯誤。  例六:用EXTEND子句更改例三所創建的表空間的容器的大小:  ALTER TABLESPACE RESOURCE EXTEND (file 'd:db2dataacc_tbsp' 1000, file 'e:db2dataacc_tbsp' 1000, file 'f:db2dataacc_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:  mp_tbsp’,’e:  mp_tbsp’)  系統臨時表只能存儲在系統臨時表空間中,所以數據庫必須始終至少有一個系統臨時表空間。  例十:創建用戶臨時表空間:  CREATE USER TEMPORARY TABLESPACE usr_tbsp MANAGED BY DATABASE USING(FILE ‘d:db2datauser_tbsp’ 5000, FILE ‘e:db2datauser_tbsp’ 5000)  用戶臨時表空間用于存儲已說明的臨時表(用 DECLARE GLOBAL TEMPORARY TABLE 語句定義)  例十一:用RENAME語句給表空間重命名:  RENAME TABLESPACE RESOURCE TO RES1  用該語句給表空間重命名之后,將自動更改所有引用該表空間的目錄記錄,所以無須關心該表空間中的個別對象。  例十二:在RESOURCE表空間中創建一張名為T1的表:  CREATE TABLE T1(ABC INT) IN RESOURCE 上一頁123
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青州市| 黄浦区| 梁山县| 扎兰屯市| 神池县| 休宁县| 浮梁县| 华蓥市| 广东省| 巩义市| 定南县| 华坪县| 青州市| 通辽市| 如皋市| 三门峡市| 正安县| 遂溪县| 阜阳市| 乌鲁木齐县| 博客| 苍梧县| 屏南县| 会理县| 丽水市| 清河县| 上蔡县| 苍梧县| 加查县| 闽侯县| 浦县| 闽侯县| 包头市| 仙居县| 郁南县| 玉龙| 龙山县| 黄骅市| 大荔县| 科技| 南岸区|