本文描述了最佳 DB2 設(shè)計實踐,簡化 DB2 數(shù)據(jù)生命周期管理。生命周期管理是有效增加(即轉(zhuǎn)入)新數(shù)據(jù),并將主數(shù)據(jù)庫中不再需要的數(shù)據(jù)進行歸檔(即轉(zhuǎn)出),DB2 系統(tǒng)提供的功能可以簡化生命周期管理。 現(xiàn)在的數(shù)據(jù)庫應(yīng)用程序通常需要伸縮性、快速轉(zhuǎn)入及轉(zhuǎn)出數(shù)據(jù)——在盡量不影響應(yīng)用程序訪問數(shù)據(jù)的情況下。轉(zhuǎn)入轉(zhuǎn)出數(shù)據(jù)涉及添加新數(shù)據(jù)和移除(通常歸檔)歷史數(shù)據(jù)。今天的很多應(yīng)用程序是 24X7 訪問的,因此消除了以前提供的批處理窗口的數(shù)據(jù)更新。同樣,很多應(yīng)用程序需要在并行訪問數(shù)據(jù)的情況下才能連續(xù)進行數(shù)據(jù)更新。 DB2數(shù)據(jù)庫系統(tǒng)提供了多種工具來實現(xiàn)伸縮性和在最低限度影響數(shù)據(jù)訪問的情況下,方便連續(xù)填充或轉(zhuǎn)入轉(zhuǎn)出數(shù)據(jù)。本文建議的最佳實踐可用來設(shè)計并實施這些 DB2 工具,以達(dá)到這些目的。
本文描述了最佳 DB2 設(shè)計實踐,簡化 DB2 數(shù)據(jù)生命周期管理。生命周期管理是有效增加(即轉(zhuǎn)入)新數(shù)據(jù),并將主數(shù)據(jù)庫中不再需要的數(shù)據(jù)進行歸檔(即轉(zhuǎn)出)。 DB2 系統(tǒng)提供了下列功能,這些功能你可以組合使用,可以簡化生命周期管理:
除了這些 DB2 功能,IBM Optim Data Growth 解決方案還簡化了數(shù)據(jù)歸檔生命周期的管理。 DB2數(shù)據(jù)庫系統(tǒng)分區(qū)工具的一個最重要的好處是,可以部署和更改這些工具而不影響現(xiàn)有應(yīng)用程序的代碼。 本文是最佳實踐文章家族的一員,你也能通過閱讀其它最佳實踐從中受益。 本文的目標(biāo)讀者是負(fù)責(zé)為 DB2 應(yīng)用程序設(shè)計數(shù)據(jù)庫的人員(如果要達(dá)到伸縮性和有效的數(shù)據(jù)生命周期管理,數(shù)據(jù)庫人員同樣會發(fā)現(xiàn)本文的價值)。本文認(rèn)為你需要有一定的 DB2 數(shù)據(jù)庫設(shè)計的經(jīng)驗。 這篇文章的內(nèi)容是基于 DB2 版本 9.5 提供的工具。 DB2 數(shù)據(jù)庫系統(tǒng)的后續(xù)版本可能會有所提高,這將對本文的最佳實踐建議帶來變化。
數(shù)據(jù)庫分區(qū)(之前稱為 DPF)是通過使用哈希鍵值算法把數(shù)據(jù)分布在數(shù)據(jù)庫中的各個邏輯節(jié)點上。數(shù)據(jù)庫分區(qū)的目標(biāo)是通過在計算機集群之間均勻的分布數(shù)據(jù)來最大化可擴展性。數(shù)據(jù)庫分區(qū)通過減少 DB2 實用工具操作粒度來增強擴展性。它并行的在數(shù)據(jù)庫上進行查詢和更新操作。 下面的例子演示了如何指定數(shù)據(jù)庫分區(qū):
注意:在 DB2 版本 9 中,PARTITION KEY 子句被重命名為 DISTRIBUTE BY 。 數(shù)據(jù)庫分區(qū)是完全透明的,因此并不影響現(xiàn)有應(yīng)用程序代碼。同樣,你可以使用 redistribution 實用工具來在線更改,而不會影響應(yīng)用程序代碼。 在設(shè)計你的數(shù)據(jù)庫分區(qū)策略時,使用一個有較高基數(shù)性的分區(qū)鍵列,來確保數(shù)據(jù)在各個邏輯節(jié)點間均勻分布。一個有較高基數(shù)的列有大量唯一值(而非大部分值相同)。同樣,唯一索引必須是分區(qū)鍵的超集。 對那些要進行連接的表,嘗試使用相同的分區(qū)鍵。這增加了連接并置。 表分區(qū)(通常叫做范圍分區(qū))是在一個邏輯數(shù)據(jù)庫分區(qū)中的一個或多個物理對象上,通過制定鍵值范圍來分割數(shù)據(jù)。表分區(qū)的目的是組織數(shù)據(jù)以便于優(yōu)化數(shù)據(jù)訪問和數(shù)據(jù)轉(zhuǎn)出。對于特定的應(yīng)用程序,表分區(qū)也有助于轉(zhuǎn)入數(shù)據(jù),然而,多維集群(在下面“ Multi-Dimensional Clustering ”章節(jié)討論)往往是增強轉(zhuǎn)入的更好選擇。數(shù)據(jù)庫分區(qū)是減少實用工具操作粒度以及超大型數(shù)據(jù)庫的可擴展性的最佳實踐。 表分區(qū)的好處是:
下面例子演示了指定表分區(qū):
在你的 DB2 文檔中有很多其他技術(shù)可以用來指定表如何進行分區(qū)。
多維集群(MDC)是一個 DB2 數(shù)據(jù)庫系統(tǒng)具有的獨特能力。 MDC 在表中通過多維鍵值(單元)來組織數(shù)據(jù)。 MDC 的目的就是通過多個維度方便的存取數(shù)據(jù),以保持?jǐn)?shù)據(jù)訪問只選擇那些相關(guān)的單元。 MDC 通過維度確保數(shù)據(jù)隨時處于集群狀態(tài),從而避免了重組數(shù)據(jù)的需求(數(shù)據(jù)永遠(yuǎn)不會變得無序)。 MDC也利用在每個維度上的塊索引(并結(jié)合維度)對比行 ID(RID)索引。這樣做的結(jié)果就是極大的減少了索引大小和索引級別。例如,如果在一個 DB2 單元中能裝入 100 行,塊索引將只指向單元而不是這 100 行數(shù)據(jù)的每一條。這樣減少了讀取和更新數(shù)據(jù)的 I/O( 索引值在塊滿了的時候進行更新 ) 。 MDC使轉(zhuǎn)入和轉(zhuǎn)出數(shù)據(jù)變得很方便,而且是對應(yīng)用程序完全透明的。 下面的例子演示了如何指定多維集群:
在設(shè)計你的 MDC 策略時,指定有較低基數(shù)的列,以避免稀疏填充單元。稀疏填充的單元會顯著的增加磁盤空間的使用量。一個有較低基數(shù)的列,會有很多相同的值(而不是很多唯一值)。你也可以使用一個生成列來產(chǎn)生一個高度集群的維度。例如,一個生成列或內(nèi)部函數(shù)可以把日期轉(zhuǎn)換成月份。這樣就顯著的減少了基數(shù)(對于一年的數(shù)據(jù),基數(shù)從 365 減少到了 12)。 MDC 功能有助于轉(zhuǎn)入和轉(zhuǎn)出數(shù)據(jù) MDC保證了在所有維度上的集群維護避免了重組數(shù)據(jù)的需求。這在轉(zhuǎn)入過程中極大的減少了 I/O(而使用連續(xù)的大塊 I/O)。同樣,由于 MDC 維度上的索引是塊索引,這也使得 MDC 在轉(zhuǎn)入過程中避免了過多的索引 I/O 。塊索引比普通基于 RID 的索引要更小也更淺,這是因為索引條目指向的是一個數(shù)據(jù)塊而非一行。 同樣,在轉(zhuǎn)入過程中,MDC 減少了索引維護,因為塊索引只在塊滿了的時候更新一次(不是像其他索引那樣每插入一行就更新一次)。這也有助于減少 I/O 。 INSERT語句在你使用 MDC 時運行的更快,因為 MDC 從用現(xiàn)有空的數(shù)據(jù)塊不需要進行分頁。插入鎖定同樣得到了減少,因為鎖發(fā)生在塊級別而不是行級別。 MDC提高了轉(zhuǎn)出數(shù)據(jù)的效率,因為刪除的是整個頁面而不是每一條記錄。在 MDC 刪除過程中日志同樣會減少(每個頁面只會有幾個字節(jié))。 使用只有一列的 MDC 設(shè)計,以便于轉(zhuǎn)入和轉(zhuǎn)出數(shù)據(jù),而不會增加磁盤使用量。 見“連續(xù)更新情況下轉(zhuǎn)入和轉(zhuǎn)出數(shù)據(jù)的最佳實踐”章節(jié)中,一個假設(shè)從使用 MDC 轉(zhuǎn)入數(shù)據(jù)中獲益的應(yīng)用程序。 在一個數(shù)據(jù)庫設(shè)計中同時使用數(shù)據(jù)庫分區(qū)、表分區(qū)和多維集群 開發(fā)大型應(yīng)用程序方法的最佳實踐是在一個數(shù)據(jù)庫設(shè)計中同時實現(xiàn)數(shù)據(jù)庫分區(qū)、表分區(qū)和 MDC 。數(shù)據(jù)庫分區(qū)提供了可擴展性并且確保了在邏輯分區(qū)上均勻分布數(shù)據(jù);表分區(qū)方便了查詢分區(qū)刪除和轉(zhuǎn)出數(shù)據(jù); MDC 提高了查詢性能并使數(shù)據(jù)轉(zhuǎn)入更加方便。 例如:
表分區(qū)不能完全解決在 DB2 版本 9.5 中的擴展問題。需要繼續(xù)使用數(shù)據(jù)庫分區(qū)來解決大型數(shù)據(jù)倉庫的擴展問題。 DB2 數(shù)據(jù)庫分區(qū)不共享架構(gòu)是對你的應(yīng)用程序提供線性擴展而沒有軟件瓶頸的最好方法。
使用大型表空間(在 DB2 版本 9 中默認(rèn)使用)能更好的調(diào)節(jié)大型的表或索引。在 DB2 服務(wù)器上這也使每頁能存更多的行。 對深度壓縮的表(一頁中有很多行)和表分區(qū)全局索引(預(yù)計會超過 4K 頁 64G 容量)使用大型表空間。如果你不受這些問題的影響,就不要使用大型表空間。同樣你可以通過把每個表分區(qū)的全局索引拆分到不同的表空間(強烈建議)來避免大型表空間的需求。 下面的圖比較了可用空間在不同頁面大小的情況下能存儲的記錄數(shù)目,包括普通表空間和大型表空間。
注意:如果你把一個表空間改成大型表空間,在與所有表相關(guān)的索引重組完成之前,它不會立即生效。 當(dāng)附加了一個新的分區(qū)到表中,或者當(dāng)你分離了一個表分區(qū)和物化查詢表(MQT)時,就需要運行 SET INTEGRITY(注意,這些數(shù)據(jù)在新的分區(qū)中 SET INTEGRITY 處理完成之前是不可見的)。 SET INTEGRITY 可能是一個要運行很長時間的操作,它驗證數(shù)據(jù)并維護全局索引。這個維護操作需要記錄日志并可能產(chǎn)生大量的日志輸入。 SET INTEGRITY的關(guān)鍵好處是,操作期間現(xiàn)有數(shù)據(jù)可以被讀寫訪問。你可以把對大數(shù)據(jù)量運行 SET INTEGRITY 的影響通過使用 MDC 來減到最小,而且也可以最小化對全局索引和 MQTs 的使用。另外一個選擇是你可以指定用戶維護 MQT 來加速 SET INTEGRITY “設(shè)計并實現(xiàn)你的表分區(qū)策略”這一章節(jié)有使用 SET INTEGRITY 的建議。 異步索引清除(AIC)是 DB2 的一個新功能,它在表分區(qū)分離后釋放索引空間(清除程序作為較低優(yōu)先級的后臺進程運行)。由于有 AIC 功能,分離表分區(qū)幾乎是一瞬間的。分離操作不需要等待索引清除完成。 AIC 是一個后臺進程,它是 DB2 數(shù)據(jù)庫系統(tǒng)自動調(diào)用的。
從表分區(qū)獲益的應(yīng)用程序使用了下列類型的表:
表分區(qū)設(shè)計,你需要考慮的內(nèi)容包括:
表分區(qū)提供了一個強大的功能,以限制到分區(qū)的數(shù)據(jù)訪問必須滿足 SQL WHERE 子句。為了從分區(qū)刪除中獲益,需做好以下工作:
使用下列最佳實踐來增強表分區(qū)的操作性特征:
有很多因素會影響你在安裝中如何選擇最佳轉(zhuǎn)入的解決方案:
下面是兩個把數(shù)據(jù)以分區(qū)形式轉(zhuǎn)入的不同技術(shù): 1.ALTER/ATTACH 你使用 ALTER/ATTACH 方法首先離線填充表,然后附加這個分區(qū)。你必須運行 SET INTEGRITY(對于大數(shù)據(jù)量來說,這個操作可能會運行很長時間)。 優(yōu)點:
缺點:
2.ALTER/Add 使用 ALTER/Add 方法,你可以附加一個空的表分區(qū),然后使用 LOAD 實用工具或 INSERT 語句來填充它。 你不需要運行 SET INTEGRITY 優(yōu)點:
缺點:
建議: 對于更大的數(shù)據(jù)量,利用 ALTER/Add 方法來轉(zhuǎn)入一個表分區(qū)或利用 MDC 來轉(zhuǎn)入。
這些最佳實踐使用 ALTER/Attach 附加一個表分區(qū),這在前面的章節(jié)中已經(jīng)介紹過了。 在版本 9.1 上,快速附加一個有壓縮數(shù)據(jù)的表分區(qū)的技術(shù)是:
對版本 9.5,自動創(chuàng)建壓縮字典簡化了這個快速附加一個表分區(qū)的技術(shù)。
注意,在一個完全裝載的分區(qū)上進行離線重組,可以得到比只有這個月歸檔的分區(qū)更好的壓縮。
連續(xù)更新情況下轉(zhuǎn)入和轉(zhuǎn)出數(shù)據(jù)的最佳實踐 這個數(shù)據(jù)庫設(shè)計包含了多個 DB2 數(shù)據(jù)庫系統(tǒng)功能,以方便在連續(xù)更新的請求下的數(shù)據(jù)轉(zhuǎn)入和轉(zhuǎn)出。 這些應(yīng)用程序的設(shè)計有以下特點:
關(guān)于數(shù)據(jù)庫設(shè)計的建議: 為了方便轉(zhuǎn)入數(shù)據(jù),指定只有一個在 day 上的維度的 MDC(見“ MDC 功能有助于轉(zhuǎn)入和轉(zhuǎn)出數(shù)據(jù)”部分) 為了方便轉(zhuǎn)出數(shù)據(jù),對每周或每個月指定一個表分區(qū)范圍。對 MDC 提供相同的時間維度不過是更粗的粒度。 有很長運行報告的程序?qū)?DB2 LOAD 實用工具通常不能排除查詢。在這種情況下的最佳實踐是使用 LOAD 實用工具來快速裝載數(shù)據(jù)到中間過渡表,然后使用一個有子查詢的插入來填充主表。
在轉(zhuǎn)出以后:如何管理數(shù)據(jù)增長和數(shù)據(jù)保持? 為了符合公司政策、管理章程、或?qū)徲嬓枨?,你可能需要保留你的?shù)據(jù)并保持它們在很長時間內(nèi)可用。例如,Health Insurance Portability and Accountability Act (HIPAA) 法案,要求健康護理組織保留至少 5 年的原始醫(yī)療記錄。另外,一些企業(yè)也發(fā)現(xiàn)了對歷史數(shù)據(jù)進行分析的價值,并因此保留更長時期的數(shù)據(jù)。 因此,為了實施一個恰當(dāng)?shù)霓D(zhuǎn)入轉(zhuǎn)入策略和適當(dāng)?shù)臄?shù)據(jù)庫設(shè)計,你需要考慮數(shù)據(jù)的壽命,包括數(shù)據(jù)保留和獲取政策。出于保留數(shù)據(jù)的目的,你可以什么都不做并不停的增加硬件能力和資源,來保持這些附加的數(shù)據(jù)增長,然而本文介紹的是數(shù)據(jù)保留的最佳實踐。 一個實踐就是在數(shù)據(jù)庫中保留所有數(shù)據(jù),把某些范圍轉(zhuǎn)出作為數(shù)據(jù)保留,并對這些范圍創(chuàng)建 UNION ALL 視圖以便于訪問。 下面的例子演示了如何創(chuàng)建一個 UNION ALL 視圖:
在數(shù)據(jù)庫使用主存儲把所有數(shù)據(jù)保持在線時,使用 UNION ALL 視圖定位數(shù)據(jù)保留和實時訪問。這個方法帶來的一個問題是你可能不需要再維護和備份鏡像相關(guān)的數(shù)據(jù)。同樣,歷史數(shù)據(jù)一般不需要高性能,所以不需要進行索引或使用在你主數(shù)據(jù)上的高成本的因素。 有很多使用 UNION ALL 視圖的方法:
對使用 UNION ALL 視圖有一些限制。當(dāng)你有很多范圍時,最好使用范圍分區(qū)表。這是因為某些復(fù)雜謂詞不能用在 UNION ALL 視圖上。 然而,在某些情況下 UNION ALL 視圖又很有優(yōu)勢。例如,一個 UNION ALL 視圖可以在聯(lián)邦數(shù)據(jù)庫中使用,相反,范圍分區(qū)表不能。 根據(jù)你的歷史數(shù)據(jù)的服務(wù)級別協(xié)議(SLA),通常同時討論數(shù)據(jù)增長和保存的最佳實踐是用 IBM Optim Data Growth 實施數(shù)據(jù)歸檔。 IBM Optim Data Growth是在處理增長、遵守和管理上領(lǐng)先的解決方案。它通過歸檔已完成的業(yè)務(wù)對象,來保持應(yīng)用程序的完整性,而非單個表。例如它在歸檔中保持外鍵并保留原數(shù)據(jù)。這些功能使你能夠:
完成下列步驟指南來判斷如何最好的實施你的歸檔策略: 第1步:對你的應(yīng)用程序進行分類 首先,你需要根據(jù)它們的歸檔需求來對你的應(yīng)用程序進行分類。通過了解需要從你的應(yīng)用程序數(shù)據(jù)中保留什么事務(wù),你可以根據(jù)相似數(shù)據(jù)需求來對應(yīng)用程序進行分組,來提高可訪問性和性能。一些應(yīng)用程序只需要保留當(dāng)前事務(wù);一些只需要訪問歷史事務(wù);其他的需要混合訪問現(xiàn)在的和歷史的事務(wù)(以不同的比例)。 你也需要客觀的對歸檔數(shù)據(jù)考慮服務(wù)層協(xié)議(SLA)。 SLA 是一個各個組織間著名的協(xié)議,它定義了它們之間的期望,包括客觀的條目,比如服務(wù)、優(yōu)先級和職責(zé)。 SLA 的目的通常被定義為使用響應(yīng)時間的目標(biāo)。例如,可能需要在五分鐘內(nèi)運行一個特定的人力資源報告。 第2步:評估你的數(shù)據(jù)溫度 數(shù)據(jù)溫度來自于:
在不同的企業(yè),數(shù)據(jù)溫度也有所不同,不過通常來說,數(shù)據(jù)溫度是根據(jù)產(chǎn)業(yè)間的區(qū)別進行的一般分類。下表提供了數(shù)據(jù)溫度的指南:
有很多方法可以訪問數(shù)據(jù)溫度,例如,使用你的轉(zhuǎn)出策略和系統(tǒng)跟蹤。你需要訪問的溫度信息:
你可以使用 DB2 版本 9.5 負(fù)載管理器(WLM)來幫助發(fā)現(xiàn)數(shù)據(jù)的溫度。 WLM 歷史分析工具提供了關(guān)于那些表、索引和列被訪問了,那些沒有以及有多頻繁的信息。 WLM歷史分析工具有兩個腳本組成:
要發(fā)現(xiàn)對象中的那些數(shù)據(jù)被訪問過,你需要分析 SQL 語句。要這么做,使用一個 ACTIVITIES 事件監(jiān)視器來搜集運行的活動數(shù)據(jù)(包括 SQL 語句文本)。你可能想搜集關(guān)于工作負(fù)載管理對象比如工作負(fù)載、服務(wù)類型和工作類型(通過工作活動)。要啟用活動搜集,在這些市哦那個 COLLECT ACTIVITY DATA WITH DETAILS 子句的對象上執(zhí)行 CREATE 或 ALTER 語句,如下所示
WITH DETAILS選項啟用對靜態(tài)語句和動態(tài) SQL 語句的語句文本搜集。 如果應(yīng)用程序在語句文本中使用了參數(shù)標(biāo)記,也應(yīng)該包括 AND VALUES 選項,(指定 COLLECT ACTIVITY DATA WITH DETAILS 和 AND VALUES)。 AND VALUES 選項搜集和參數(shù)變量相關(guān)的數(shù)據(jù)值以獲得詳細(xì)語句信息。 第3步:發(fā)現(xiàn)并對你的業(yè)務(wù)對象進行分類 業(yè)務(wù)對象,比如一個保單、一個發(fā)票、或購物清單、代表了一個事務(wù)交易。通過指定你的業(yè)務(wù)對象,你可以開始定義規(guī)則和相關(guān)業(yè)務(wù)驅(qū)動以在數(shù)據(jù)生命周期的不同階段管理這些對象。 從數(shù)據(jù)庫透視圖來看,一個業(yè)務(wù)對象表示了一組相關(guān)表中相關(guān)的行 業(yè)務(wù)對象的簡單例子 給出了下面 3 個表: ![]() ![]() ![]() 業(yè)務(wù)對象是: ![]() 出于保持和歸檔的目的,你希望表現(xiàn)整個業(yè)務(wù)對象,比如你有一個事務(wù)交易的歷史“時間點”快照。創(chuàng)建一個歷史快照需要交易細(xì)節(jié)和相關(guān)主要數(shù)據(jù),這包含數(shù)據(jù)庫中的多個表??梢酝暾_的對整個業(yè)務(wù)對象進行歸檔,并提供單獨的交易歷史存儲庫。為了響應(yīng)質(zhì)詢或發(fā)現(xiàn)需求,你可以查詢這個存儲庫而不需要訪問 HOT 數(shù)據(jù)。 在這個例子中,為了確保所有對象可用,歸檔業(yè)務(wù)對象必須由來自 DEPARTMENT 和 EMPLOYEE 表中的相關(guān)數(shù)據(jù)組成。在歸檔后,你會只想刪除生產(chǎn) PROJECT 表中的數(shù)據(jù)以及和 EMPLOYEE、DEPARTEMENT 無關(guān)的數(shù)據(jù)。 就像在這個例子中展示的,你會發(fā)現(xiàn)基于模式間的關(guān)系的業(yè)務(wù)對象。 不過,你或許也想包含其它沒有任何模式關(guān)系的相關(guān)表,卻通過使用一個應(yīng)用程序相關(guān)聯(lián)。另外,你或許會選擇刪除從某個業(yè)務(wù)對象上某個發(fā)現(xiàn)的關(guān)系 第4步:生成你的綜合數(shù)據(jù)分類: 在你對你的應(yīng)用程序和業(yè)務(wù)對象完以成分類并對他們相關(guān)數(shù)據(jù)溫度做出判斷后,你可以生成一個數(shù)據(jù)分類表來總結(jié)這些信息。這張表可以明白的說明數(shù)據(jù)的年齡。 下表提供了一個分類樣本: ![]() 第5步:判斷后歸檔存儲類型 為了判斷什么存儲類型歲適合你的老數(shù)據(jù):
例如,對于在線歸檔你可以使用 ATA 磁盤或更大容量的較慢驅(qū)動。對離線歸檔,你可以使用磁帶或 WORM(IBM DR550,EMC Centera)。 ![]() 第6步:訪問歸檔數(shù)據(jù) Optim Data Growth訪問層使用 SQL92 容量和多種協(xié)議(如上圖所示)以支持對歸檔數(shù)據(jù)的訪問。這個訪問能力和生產(chǎn)系統(tǒng)完全不同,而且不會使用任何生產(chǎn)系統(tǒng)資源 另外,你可以使用一個聯(lián)邦系統(tǒng)(使用 IBM DB2 聯(lián)邦服務(wù)器)從生產(chǎn)系統(tǒng)上來對歸檔數(shù)據(jù)提供透明訪問。 這兩種方法都允許對歸檔數(shù)據(jù)的直接訪問,不需要取得或回復(fù)歸檔數(shù)據(jù)。 下面例子演示了如何使用 UNION ALL 視圖來同時訪問活動和歸檔數(shù)據(jù)。在例子中把數(shù)據(jù)庫中叫做project表重命名為另外一個名字,然后創(chuàng)建一個也叫做project的 UNION ALL 視圖。
另外,下面例子避免了在數(shù)據(jù)庫中重名表的需求。例子中創(chuàng)建了一個叫project_all的 UNION ALL 視圖作為替代,應(yīng)用程序可以從這里查詢到完整的project數(shù)據(jù)集:
通過仔細(xì)選擇在你的 DB2 數(shù)據(jù)庫中最適合分區(qū)方法,以及在你的系統(tǒng)上使用最有效的轉(zhuǎn)入和轉(zhuǎn)出技術(shù),你可以最大化整體系統(tǒng)性能和效率。 投入足夠的時間來分析和理解你的數(shù)據(jù),這樣你可以最好的利用本文中的指南,并獲得 DB2 數(shù)據(jù)庫提供功能的好處來使你的系統(tǒng)盡可能有效率。 你可以使用數(shù)據(jù)庫分區(qū)來提供擴展性并確保數(shù)據(jù)在分區(qū)間均勻分布。下面指南在“設(shè)計并實現(xiàn)你的表分區(qū)策略”這一章中設(shè)計最有效的表分區(qū)策略。使用 MDC 來提高查詢性能并使轉(zhuǎn)入數(shù)據(jù)更容易。 如果你需要從壓縮的額表分區(qū)中轉(zhuǎn)入大量數(shù)據(jù),升級到 DB2 版本 9.5 數(shù)據(jù)庫系統(tǒng)并使用 ALTER/Add 方法來附加一個表分區(qū)。 如果你需要提供連續(xù)更新,你的最佳策略是使用 MDC 以方便轉(zhuǎn)入處理。 緊接著在“在轉(zhuǎn)出以后:如何管理數(shù)據(jù)增長和數(shù)據(jù)保持?”指南中確定了如何處理你的歷史數(shù)據(jù)需求。 在你準(zhǔn)備好轉(zhuǎn)出你的數(shù)據(jù)并歸檔之前,你需要對數(shù)據(jù)保留和從歸檔中取回數(shù)據(jù)確定一個和你的組織匹配的數(shù)據(jù)策略。 你可以確定你組織對保留數(shù)據(jù)的需求,并通過下列因素取回:
你的策略應(yīng)該包含什么類型的后歸檔存儲是最合適的,以及如何最好的訪問歸檔數(shù)據(jù)。 學(xué)習(xí)
獲得產(chǎn)品和技術(shù)
討論 |