|
超大型數(shù)據(jù)庫的大小常常達到數(shù)百GB,有時甚至要用TB來計算。而單表的數(shù)據(jù)量往往會達到上億的記錄,并且記錄數(shù)會隨著時間而增長。這不但影響著數(shù)據(jù)庫的運行效率,也增大數(shù)據(jù)庫的維護難度。除了表的數(shù)據(jù)量外,對表不同的訪問模式也可能會影響性能和可用性。這些問題都可以通過對大表進行合理分區(qū)得到很大的改善。當表和索引變得非常大時,分區(qū)可以將數(shù)據(jù)分為更小、更容易管理的部分來提高系統(tǒng)的運行效率。如果系統(tǒng)有多個CPU或是多個磁盤子系統(tǒng),可以通過并行操作獲得更好的性能。所以對大表進行分區(qū)是處理海量數(shù)據(jù)的一種十分高效的方法。本文通過一個具體實例,介紹如何創(chuàng)建和修改分區(qū)表,以及如何查看分區(qū)表。
1 SQL Server 2005
SQL Server 2005是微軟在推出SQL Server 2000后時隔五年推出的一個數(shù)據(jù)庫平臺,它的數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,使用戶可以構(gòu)建和管理用于業(yè)務的高可用和高性能的數(shù)據(jù)應用程序。此外SQL Server 2005結(jié)合了分析、報表、集成和通知功能。這使企業(yè)可以構(gòu)建和部署經(jīng)濟有效的BI解決方案,幫助團隊通過記分卡、Dashboard、Web Services和移動設備將數(shù)據(jù)應用推向業(yè)務的各個領域。無論是開發(fā)人員、數(shù)據(jù)庫管理員、信息工作者還是決策者,SQL Server 2005都可以提供出創(chuàng)新的解決方案,并可從數(shù)據(jù)中獲得更多的益處。
它所帶來的新特性,如T-SQL的增強、數(shù)據(jù)分區(qū)、服務代理和與.NET Framework的集成等,在易管理性、可用性、可伸縮性和安全性等方面都有很大的增強。
2 表分區(qū)的具體實現(xiàn)方法
表分區(qū)分為水平分區(qū)和垂直分區(qū)。水平分區(qū)將表分為多個表。每個表包含的列數(shù)相同,但是行更少。例如,可以將一個包含十億行的表水平分區(qū)成 12 個表,每個小表表示特定年份內(nèi)一個月的數(shù)據(jù)。任何需要特定月份數(shù)據(jù)的查詢只需引用相應月份的表。而垂直分區(qū)則是將原始表分成多個只包含較少列的表。水平分區(qū)是最常用分區(qū)方式,本文以水平分區(qū)來介紹具體實現(xiàn)方法。
水平分區(qū)常用的方法是根據(jù)時期和使用對數(shù)據(jù)進行水平分區(qū)。例如本文例子,一個短信發(fā)送記錄表包含最近一年的數(shù)據(jù),但是只定期訪問本季度的數(shù)據(jù)。在這種情況下,可考慮將數(shù)據(jù)分成四個區(qū),每個區(qū)只包含一個季度的數(shù)據(jù)。
2.1 創(chuàng)建文件組
建立分區(qū)表先要創(chuàng)建文件組,而創(chuàng)建多個文件組主要是為了獲得好的 I/O 平衡。一般情況下,文件組數(shù)最好與分區(qū)數(shù)相同,并且這些文件組通常位于不同的磁盤上。每個文件組可以由一個或多個文件構(gòu)成,而每個分區(qū)必須映射到一個文件組。一個文件組可以由多個分區(qū)使用。為了更好地管理數(shù)據(jù)(例如,為了獲得更精確的備份控制),對分區(qū)表應進行設計,以便只有相關(guān)數(shù)據(jù)或邏輯分組的數(shù)據(jù)位于同一個文件組中。使用 ALTER DATABASE,添加邏輯文件組名:
it知識庫:SQL Server 2005利用分區(qū)對海量數(shù)據(jù)的處理,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。