字號: 小 中 大 |
推薦給好友
上一篇 |
下一篇
SQL Server 2005對海量數據的處理
發布: 2008-5-05 13:02 |
作者: 王翔 |
來源:
本站原創 |
查看: 75次 | 進入軟件測試論壇討論
2.5、查看分區表信息
系統運行一段時間或者把以前的數據導入分區表后,我們需要查看數據的具體存儲情況,即每個分區存取的記錄數,那些記錄存取在那個分區等。我們可以通過$partition.SendSMSPF來查看,代碼如下:
SELECT $partition.SendSMSPF(o.SendDate)
AS [Partition Number]
, min(o.SendDate) AS [Min SendDate]
, max(o.SendDate) AS [Max SendDate]
, count(*) AS [Rows In Partition]
FROM dbo.SendSMSLog AS o
GROUP BY $partition.SendSMSPF(o.SendDate)
ORDER BY [Partition Number]
在查詢分析器里執行以上腳本,結果如圖1所示:

2.6、維護分區
分區的維護主要設計分區的添加、減少、合并和在分區間轉換?梢酝ㄟ^ALTER PARTITION FUNCTION的選項SPLIT,MERGE和ALTER TABLE的選項SWITCH來實現。SPLIT會多增加一個分區,而MEGRE會合并或者減少分區,SWITCH則是邏輯地在組間轉換分區。
3、性能對比
我們對2650萬數據,存儲空間占用約4G的單表進行性能對比,
測試環境為IBM365,CPU 至強2.7G*2、內存 16G、硬盤 136G*2,系統平臺為
Windows 2003 SP1+SQL Server 2005 SP1。測試結果如表1:
表1:分區和未分區性能對比表(單位:毫秒)

說明:
1、根據時間檢索某一天記錄所耗時間
2、單條記錄插入所耗時間
3、根據時間刪除某一天記錄所耗時間
4、統計每月的記錄數所需時間
從表1可以看出,對分區表進行操作比未分區的表要快,這是因為對分區表的操作采用了CPU和I/O的并行操作,檢索數據的數據量也變小了,定位數據所耗時間變短。
4、結束語
對海量數據的處理一直是一個令人頭痛的問題。分離的技術是所有設計者們首先考慮的問題,不管是分離應用程序功能還是分離數據訪問,如果加以了合理規劃,都能十分有效的解決大數據表的運行效率低和維護成本高等問題。SQL Server 2005新增的表分區功能,可以對數據進行合理分區,當用戶在訪問部分數據時,SQL Server最佳化引擎可以根據數據的實體存放,找出最佳的執行方案,而不至于大海撈針。
文章來源于領測軟件測試網 http://www.kjueaiud.com/