您好,登錄后才能下訂單哦!
DB2支持的三種表空間SMS、DMS、DMS的自動(dòng)存儲(chǔ)
DB2中,表空間是數(shù)據(jù)庫(kù)與這個(gè)數(shù)據(jù)庫(kù)中存儲(chǔ)的表之間的邏輯層。表空間在數(shù)據(jù)庫(kù)中創(chuàng)建,表在表空間中創(chuàng)建。容器是一個(gè)物理存儲(chǔ)設(shè)備。它可以由目錄名、設(shè)備名或文件名標(biāo)識(shí)。容器被分配給表空間。表空間可以跨許多容器(類(lèi)似于Oracle中datafile的概念),這意味著可以突破操作系統(tǒng)對(duì)于一個(gè)容器可以包含的數(shù)據(jù)量的限制。DB2 支持三種表空間:
· 系統(tǒng)管理的空間(System-Managed Space,SMS):在這里,由操作系統(tǒng)的文件系統(tǒng)管理器分配和管理空間。在DB2 9 之前,如果不帶任何參數(shù)創(chuàng)建數(shù)據(jù)庫(kù)或表空間,就會(huì)導(dǎo)致所有表空間作為 SMS 對(duì)象創(chuàng)建。
· 數(shù)據(jù)庫(kù)管理的空間(Database-Managed Space,DMS):在這里,由數(shù)據(jù)庫(kù)管理程序控制存儲(chǔ)空間。這種表空間本質(zhì)上是一種特殊用途的文件系統(tǒng)實(shí)現(xiàn),可以最好地滿足數(shù)據(jù)庫(kù)管理程序的需要。
· DMS 的自動(dòng)存儲(chǔ)(Automatic Storage With DMS):自動(dòng)存儲(chǔ)實(shí)際上不是一種單獨(dú)的表空間類(lèi)型,而是一種處理DMS 存儲(chǔ)的不同方式。DMS 容器需要比較多的維護(hù),在 DB2 V8.2.2 中引入了自動(dòng)存儲(chǔ),作為簡(jiǎn)化空間管理的方式。
SMS 表空間需要的維護(hù)非常少。但是,與 DMS 表空間相比,SMS 表空間提供的優(yōu)化選項(xiàng)少而且性能不好。
SMS、DMS與自動(dòng)存儲(chǔ)
特性 | SMS | DMS | 自動(dòng)存儲(chǔ) |
是否分段(Striping)? | 是 | 是 | 是 |
默認(rèn)類(lèi)型 | Version 8 | 無(wú) | Version 9 |
對(duì)象管理 | 操作系統(tǒng) | DB2 | DB2 |
空間分配 | 按需增長(zhǎng)/收縮 | 預(yù)先分配;大小可以收縮和增長(zhǎng),但是需要 DBA 干預(yù)。 | 預(yù)先分配;可以自動(dòng)增長(zhǎng)。 |
管理的簡(jiǎn)便性 | 最好;很少需要調(diào)優(yōu),甚至不需要 | 好,但是需要一些調(diào)優(yōu)(例如, EXTENTSIZE PREFETCHSIZE | 最好;很少需要調(diào)優(yōu),甚至不需要 |
性能 | 非常好 | 最好;可通過(guò)利用原始容器多獲得 5% 到 10% 的收益 | 最好;但是,可以不使用原始容器 |
表空間最大大小 | 64GB(4K 頁(yè)面) | 2TB(4K 頁(yè)面) | 2TB(4K 頁(yè)面) |
除了使用 SMS 表空間可以簡(jiǎn)化管理之外,這兩種存儲(chǔ)模型之間最顯著的差異是表空間的最大大小。在使用 SMS 時(shí),DBA最多只能在表空間中放 64GB 的數(shù)據(jù)。將頁(yè)面大小改為 32K,可以將這個(gè)限制擴(kuò)大到 512GB,但代價(jià)是每個(gè)頁(yè)面上的可用空間可能會(huì)更少。改為 DMS 模型會(huì)將表空間限制擴(kuò)大到 2TB(4K 頁(yè)面大小的情況下)。如果將頁(yè)面大小改為 32K,可用空間可以增長(zhǎng)到 16TB。盡管還有讓表大小突破 64GB 限制的其他方法,但是最簡(jiǎn)單的方法可能是一開(kāi)始就使用 DMS 表空間。
DMS與自動(dòng)存儲(chǔ)
DB2 8.2.2 引入了自動(dòng)存儲(chǔ)的概念。自動(dòng)存儲(chǔ)允許 DBA 為數(shù)據(jù)庫(kù)設(shè)置在創(chuàng)建所有表空間容器時(shí)可以使用的存儲(chǔ)路徑。DBA不必顯式地定義表空間的位置和大小,系統(tǒng)將自動(dòng)地分配表空間。在 DB2 9 中,數(shù)據(jù)庫(kù)在創(chuàng)建時(shí)將啟用自動(dòng)存儲(chǔ),除非 DBA顯式地覆蓋這個(gè)設(shè)置。
啟用自動(dòng)存儲(chǔ)的數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)相關(guān)聯(lián)的存儲(chǔ)路徑。表空間可以定義為 “由自動(dòng)存儲(chǔ)進(jìn)行管理”,它的容器由 DB2根據(jù)這些存儲(chǔ)路徑進(jìn)行分配。數(shù)據(jù)庫(kù)只能在創(chuàng)建時(shí)啟用自動(dòng)存儲(chǔ)。對(duì)于在最初沒(méi)有啟用自動(dòng)存儲(chǔ)的數(shù)據(jù)庫(kù),不能在以后啟用這個(gè)特性。同樣,對(duì)于在最初啟用了自動(dòng)存儲(chǔ)的數(shù)據(jù)庫(kù),也不能在以后禁用這個(gè)特性。
特性 | 非自動(dòng)存儲(chǔ) | 自動(dòng)存儲(chǔ) |
容器的創(chuàng)建 | 必須在創(chuàng)建表空間時(shí)顯式地提供容器。 | 不能在創(chuàng)建表空間時(shí)提供容器;它們將由 DB2 自動(dòng)地分配。 |
容器大小的調(diào)整 | 在默認(rèn)情況下,表空間大小的自動(dòng)調(diào)整是關(guān)閉的(AUTORESIZE NO)。 | 在默認(rèn)情況下,表空間大小的自動(dòng)調(diào)整是打開(kāi)的(AUTORESIZE YES)。 |
初始大小 | 不能使用 INITIALSIZE 子句指定表空間的初始大小。 | 使用 INITIALSIZE 子句指定表空間的初始大小。 |
容器的修改 | 可以使用 ALTER TABLESPACE 語(yǔ)句(ADD、DROP、BEGIN NEW STRIPE SET 等等)執(zhí)行容器操作。 | 不能執(zhí)行容器操作,因?yàn)橛?span> DB2 控制空間管理。 |
管理的簡(jiǎn)便性 | 可以使用重定向的恢復(fù)操作重新定義與表空間相關(guān)聯(lián)的容器。 | 不能使用重定向的恢復(fù)操作重新定義與表空間相關(guān)聯(lián)的容器,因?yàn)橛?span>DB2 控制空間管理。 |
在DB2中表空間的存儲(chǔ)方式有兩種,SMS(System Managed Space)和DMS(Database Managed Space)。
SMS直接利用操作系統(tǒng)的文件系統(tǒng)來(lái)管理數(shù)據(jù)。表空間中的數(shù)據(jù)按照系統(tǒng)中所有容器上進(jìn)行數(shù)據(jù)塊劃分。表空間中的所有的表都被賦予了它自己的文件名,此文件名在所有的容器中使用。文件擴(kuò)展名指示出該文件中存儲(chǔ)的數(shù)據(jù)類(lèi)型。
DMS是由數(shù)據(jù)庫(kù)進(jìn)行表空間的存儲(chǔ)空間控制。當(dāng)定義DMS表空間時(shí),需要選擇設(shè)備或者文件列表,使其屬于該表空間。
DMS表空間和SMS表空間之間的主要差別在于,對(duì)于DMS的表空間,存儲(chǔ)空間是在創(chuàng)建表空間時(shí)分配的,而不是在需要時(shí)在向操作系統(tǒng)申請(qǐng)的。并且,在這兩種類(lèi)型的表空間上,數(shù)據(jù)的放置也是有一些不同之處。例如:考慮進(jìn)行高效率的表掃描時(shí),數(shù)據(jù)塊在物理上連續(xù)存放是很重要的。對(duì)于SMS來(lái)說(shuō),操作系統(tǒng)的文件系統(tǒng)將決定每個(gè)邏輯文件頁(yè)面的物理存儲(chǔ)位置。根據(jù)文件系統(tǒng)上其他活動(dòng)的級(jí)別以及用來(lái)確定存放位置的算法不同,這些邏輯連續(xù)的頁(yè)面可能會(huì)連續(xù)存放,也可能不連續(xù)分配。對(duì)于DMS,由于是數(shù)據(jù)庫(kù)管理程序直接與磁盤(pán)打交道,所以它在理論上可能保證頁(yè)面在物理上連續(xù)存放。
但是,應(yīng)該注意的是,當(dāng)使用DMS表空間時(shí),有兩個(gè)容器選項(xiàng):原始設(shè)備(raw)和文件(file)。當(dāng)使用文件選項(xiàng)時(shí),數(shù)據(jù)庫(kù)管理程序在創(chuàng)建表空間時(shí)向文件系統(tǒng)申請(qǐng)分配整個(gè)容器。由于是從文件系統(tǒng)分配得來(lái),導(dǎo)致物理分配通常(但也不保證)是連續(xù)的。當(dāng)使用原始設(shè)備容器時(shí),數(shù)據(jù)庫(kù)管理程序直接控制整個(gè)設(shè)備,并總能確保數(shù)據(jù)塊中的頁(yè)連續(xù)分配。
SMS和DMS表空間相比,SMS表空間特別適合一般用途。SMS表空間能夠提供一定的性能,且管理成本很低。如果需要達(dá)到最佳的性能,則應(yīng)該選用DMS表空間。因?yàn)槭褂梦募萜骰蛘逽MS表空間移動(dòng)數(shù)據(jù)時(shí)會(huì)發(fā)生雙重緩沖(在數(shù)據(jù)庫(kù)管理程序級(jí)首先緩沖一次數(shù)據(jù),然后在文件系統(tǒng)再緩沖一次數(shù)據(jù),這就是雙重緩沖),所以使用設(shè)備容器可能提供更好的性能。
SMS是系統(tǒng)管理的表空間,DMS是數(shù)據(jù)庫(kù)管理的表空間。
SMS在老的DB2版本使用,在新DB2版本中推薦使用DMS。
DMS可以使用裸設(shè)備,SMS不可以使用。
DMS可以將數(shù)據(jù)對(duì)象分開(kāi)存放,例如常規(guī)數(shù)據(jù)、索引、大字段等,都可以分開(kāi)存放,SMS做不到這點(diǎn)。
這是SMS和DMS的主要區(qū)別,除此之外,還有一些細(xì)節(jié)上的區(qū)別,可參考DB2的相關(guān)文檔
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。