电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server 2005對海量數(shù)據(jù)處理

瀏覽:121日期:2023-11-02 19:38:09

超大型數(shù)據(jù)庫的大小常常達(dá)到數(shù)百GB,有時甚至要用TB來計算。而單表的數(shù)據(jù)量往往會達(dá)到上億的記錄,并且記錄數(shù)會隨著時間而增長。這不但影響著數(shù)據(jù)庫的運行效率,也增大數(shù)據(jù)庫的維護(hù)難度。除了表的數(shù)據(jù)量外,對表不同的訪問模式也可能會影響性能和可用性。這些問題都可以通過對大表進(jìn)行合理分區(qū)得到很大的改善。當(dāng)表和索引變得非常大時,分區(qū)可以將數(shù)據(jù)分為更小、更容易管理的部分來提高系統(tǒng)的運行效率。如果系統(tǒng)有多個CPU或是多個磁盤子系統(tǒng),可以通過并行操作獲得更好的性能。所以對大表進(jìn)行分區(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è)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。此外SQL Server 2005結(jié)合了分析、報表、集成和通知功能。這使企業(yè)可以構(gòu)建和部署經(jīng)濟(jì)有效的BI解決方案,幫助團(tuán)隊通過記分卡、Dashboard、Web Services和移動設(shè)備將數(shù)據(jù)應(yīng)用推向業(yè)務(wù)的各個領(lǐng)域。無論是開發(fā)人員、數(shù)據(jù)庫管理員、信息工作者還是決策者,SQL Server 2005都可以提供出創(chuàng)新的解決方案,并可從數(shù)據(jù)中獲得更多的益處。

它所帶來的新特性,如T-SQL的增強(qiáng)、數(shù)據(jù)分區(qū)、服務(wù)代理和與.Net Framework的集成等,在易管理性、可用性、可伸縮性和安全性等方面都有很大的增強(qiáng)。

2 表分區(qū)的具體實現(xiàn)方法

表分區(qū)分為水平分區(qū)和垂直分區(qū)。水平分區(qū)將表分為多個表。每個表包含的列數(shù)相同,但是行更少。例如,可以將一個包含十億行的表水平分區(qū)成 12 個表,每個小表表示特定年份內(nèi)一個月的數(shù)據(jù)。任何需要特定月份數(shù)據(jù)的查詢只需引用相應(yīng)月份的表。而垂直分區(qū)則是將原始表分成多個只包含較少列的表。水平分區(qū)是最常用分區(qū)方式,本文以水平分區(qū)來介紹具體實現(xiàn)方法。

水平分區(qū)常用的方法是根據(jù)時期和使用對數(shù)據(jù)進(jìn)行水平分區(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ū)表應(yīng)進(jìn)行設(shè)計,以便只有相關(guān)數(shù)據(jù)或邏輯分組的數(shù)據(jù)位于同一個文件組中。使用 ALTER DATABASE,添加邏輯文件組名:

ALTER DATABASE [DeanDB] ADD FILEGROUP [FG1]

DeanDB為數(shù)據(jù)庫名稱,F(xiàn)G1文件組名。創(chuàng)建文件組后,再使用 ALTER DATABASE 將文件添加到該文件組中:

ALTER DATABASE [DeanDB] ADD FILE ( NAME = N'FG1', FILENAME = N'C:DeanDataFG1.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) TO FILEGROUP [FG1]

類似的建立四個文件和文件組,并把每一個存儲數(shù)據(jù)的文件放在不同的磁盤驅(qū)動器里。2.2 創(chuàng)建分區(qū)函數(shù)

創(chuàng)建分區(qū)表必須先確定分區(qū)的功能機(jī)制,表進(jìn)行分區(qū)的標(biāo)準(zhǔn)是通過分區(qū)函數(shù)來決定的。創(chuàng)建數(shù)據(jù)分區(qū)函數(shù)有RANGE “LEFT | / RIGHT”兩種選擇。代表每個邊界值在局部的哪一邊。例如存在四個分區(qū),則定義三個邊界點值,并指定每個值是第一個分區(qū)的上邊界 (LEFT) 還是第二個分區(qū)的下邊界 (RIGHT)[1]。代碼如下:

CREATE PARTITION FUNCTION [SendSMSPF](datetime) AS RANGE RIGHT FOR VALUES ('20070401', '20070701', '20071001')

2.3 創(chuàng)建分區(qū)方案

創(chuàng)建分區(qū)函數(shù)后,必須將其與分區(qū)方案相關(guān)聯(lián),以便將分區(qū)指向至特定的文件組。就是定義實際存放數(shù)據(jù)的媒體與各數(shù)據(jù)塊的對應(yīng)關(guān)系。多個數(shù)據(jù)表可以共用相同的數(shù)據(jù)分區(qū)函數(shù),一般不共用相同的數(shù)據(jù)分區(qū)方案。可以通過不同的分區(qū)方案,使用相同的分區(qū)函數(shù),使不同的數(shù)據(jù)表有相同的分區(qū)條件,但存放在不同的媒介上。創(chuàng)建分區(qū)方案的代碼如下:

CREATE PARTITION SCHEME [SendSMSPS] AS PARTITION [SendSMSPF] TO ([FG1], [FG2], [FG3], [FG4])

2.4 創(chuàng)建分區(qū)表

建立好分區(qū)函數(shù)和分區(qū)方案后,就可以創(chuàng)建分區(qū)表了。分區(qū)表是通過定義分區(qū)鍵值和分區(qū)方案相聯(lián)系的。插入記錄時,SQL SERVER會根據(jù)分區(qū)鍵值的不同,通過分區(qū)函數(shù)的定義將數(shù)據(jù)放到相應(yīng)的分區(qū)。從而把分區(qū)函數(shù)、分區(qū)方案和分區(qū)表三者有機(jī)的結(jié)合起來。創(chuàng)建分區(qū)表的代碼如下:

CREATE TABLE SendSMSLog

([ID] [int] IDENTITY(1,1) NOT NULL,

[IDNum] [nvarchar](50) NULL,

[SendContent] [text] NULL

[SendDate] [datetime] NOT NULL,

) ON SendSMSPS(SendDate)

2.5 查看分區(qū)表信息

系統(tǒng)運行一段時間或者把以前的數(shù)據(jù)導(dǎo)入分區(qū)表后,我們需要查看數(shù)據(jù)的具體存儲情況,即每個分區(qū)存取的記錄數(shù),那些記錄存取在那個分區(qū)等。我們可以通過$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]

在查詢分析器里執(zhí)行以上腳本,結(jié)果如圖1所示:

圖1 分區(qū)表信息

2.6 維護(hù)分區(qū)

分區(qū)的維護(hù)主要設(shè)計分區(qū)的添加、減少、合并和在分區(qū)間轉(zhuǎn)換。可以通過ALTER PARTITION FUNCTION的選項SPLIT,MERGE和ALTER TABLE的選項SWITCH來實現(xiàn)。SPLIT會多增加一個分區(qū),而MEGRE會合并或者減少分區(qū),SWITCH則是邏輯地在組間轉(zhuǎn)換分區(qū)。

3 性能對比

我們對2650萬數(shù)據(jù),存儲空間占用約4G的單表進(jìn)行性能對比,測試環(huán)境為IBM365,CPU 至強(qiáng)2.7G*2、內(nèi)存 16G、硬盤 136G*2,系統(tǒng)平臺為Windows 2003 SP1+SQL Server 2005 SP1。測試結(jié)果如表1:

表1:分區(qū)和未分區(qū)性能對比表(單位:毫秒)

測試項目 分區(qū) 未分區(qū)

1 16546 61466

2 13 33

3 20140 61546

4 17140 61000

說明:

1:根據(jù)時間檢索某一天記錄所耗時間

2:單條記錄插入所耗時間

3:根據(jù)時間刪除某一天記錄所耗時間

4:統(tǒng)計每月的記錄數(shù)所需時間

從表1可以看出,對分區(qū)表進(jìn)行操作比未分區(qū)的表要快,這是因為對分區(qū)表的操作采用了CPU和I/O的并行操作,檢索數(shù)據(jù)的數(shù)據(jù)量也變小了,定位數(shù)據(jù)所耗時間變短。

4 結(jié)束語

對海量數(shù)據(jù)的處理一直是一個令人頭痛的問題。分離的技術(shù)是所有設(shè)計者們首先考慮的問題,不管是分離應(yīng)用程序功能還是分離數(shù)據(jù)訪問,如果加以了合理規(guī)劃,都能十分有效的解決大數(shù)據(jù)表的運行效率低和維護(hù)成本高等問題。SQL Server 2005新增的表分區(qū)功能,可以對數(shù)據(jù)進(jìn)行合理分區(qū),當(dāng)用戶在訪問部分?jǐn)?shù)據(jù)時,SQL Server最佳化引擎可以根據(jù)數(shù)據(jù)的實體存放,找出最佳的執(zhí)行方案,而不至于大海撈針。

標(biāo)簽: Sql Server 數(shù)據(jù)庫
主站蜘蛛池模板: 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 巨野月嫂-家政公司-巨野县红墙安康母婴护理中心 | 大流量卧式砂磨机_强力分散机_双行星双动力混合机_同心双轴搅拌机-莱州市龙跃化工机械有限公司 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | SEO网站优化,关键词排名优化,苏州网站推广-江苏森歌网络 | 诚暄电子公司首页-线路板打样,pcb线路板打样加工制作厂家 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产 - 中工招商网 | 飞行者联盟-飞机模拟机_无人机_低空经济_航空技术交流平台 | 1000帧高速摄像机|工业高速相机厂家|科天健光电技术 | 釜溪印象网络 - Powered by Discuz!| 福建成考网-福建成人高考网 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | 汝成内控-行政事业单位内部控制管理服务商 | 二氧化碳/活性炭投加系统,次氯酸钠发生器,紫外线消毒设备|广州新奥 | 全自动贴标机-套标机-工业热风机-不干胶贴标机-上海厚冉机械 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 | 起好名字_取个好名字_好名网免费取好名在线打分 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 上海乾拓贸易有限公司-日本SMC电磁阀_德国FESTO电磁阀_德国FESTO气缸 |