SQLSERVER利用分区对大数据表处理操作手册_第1页
SQLSERVER利用分区对大数据表处理操作手册_第2页
SQLSERVER利用分区对大数据表处理操作手册_第3页
SQLSERVER利用分区对大数据表处理操作手册_第4页
SQLSERVER利用分区对大数据表处理操作手册_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL SERVER 200利用分区对大数据表处理操作手册超大型数据库的大小常5常达到数百GB,有时甚至要用TB来计算。而单表的数据量往往会达到上亿的记录,并且记录数会随着时间而增长。这不但影响着数据库的运行效率,也增大数据库的维护难度。除了表的数据量外,对表不同的访问模式也可能会影响性能和可用性。这些问题都可以通过对大表进行合理分区得到很大的改善。当表和索引变得非常大时,分区可以将数据分为更小、更容易管理的部分来提高系统的运行效率。如果系统有多个CPU或是多个磁盘子系统,可以通过并行操作获得更好的性能。所以对大表进行分区是处理海量数据的一种十分高效的方法。本文通过一个具体实例,介绍如何创建和

2、修改分区表,以及如何查看分区表。SQL Server 2005是微软在推出SQL Server 2000后时隔五年推出的一个数据库平台,它的数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。此外 SQL Server 2005结合了分析、报表、集成和通知功能。这使企业可以构建和部署经济有效的 BI 解决方案,帮助团队通过记分卡、Dashboard、 Web Services和移动设备将数据应用推向业务的各个领域。无论是开发人员、数据库管理员、信息工作者还是决策者, SQL Server 2005都可以提供出创新的解决方案,

3、并可从数据中获得更多的益处。它所带来的新特性,如T-SQM增强、数据分区、服务代理和与.NetFramework的集成等,在易管理性、可用性、可伸缩性和安全性等方面都 有很大的增强。表分区的具体实现方法:表分区分为水平分区和垂直分区。水平分区将表分为多个表。每个表包含的列数相同,但是行更少。例如,可以将一个包含十亿行的表水平分区成 12 个 表,每个小表表示特定年份内一个月的数据。任何需要特定月份数据的查询只需引用相应月份的表。而垂直分区则是将原始表分成多个只包含较少列的表。水平分区是最常用分区方式,本文以水平分区来介绍具体实现方法。水平分区常用的方法是根据时期和使用对数据进行水平分区。例如本

4、文例子,一个短信发送记录表包含最近一年的数据,但是只定期访问本季度的数据。在这种情况下,可考虑将数据分成四个区,每个区只包含一个季度的数 据。以下是创建过程:一、最基本,最重要的一步就是创建分区函数。创建分区函数首先要确定分区键 -既按照哪字段来进行分区。在这里,使用记录的时间来作为分区键,由于数据量的问题,最终决定每个月的数据放一个单独的分区。CREATE PARTION FUNCTION FiveYearDateRangePFN(datetime)ASRANGE LEFT FOR VALUES (' 23:59:59.997',-2006 年 9 月' 23:59:

5、59.997',-2006 年 10 月' 23:59:59.997',-2006 年 11 月' 23:59:59.997',-2006 年 12 月' 23:59:59.997',-2007 年 1 月' 23:59:59.997',-2007 年 2 月' 23:59:59.997',-2007 年 3 月' 23:59:59.997',-2007 年 4 月' 23:59:59.997',-2007 年 5 月' 23:59:59.997',-2007

6、 年 6 月'200731 23:59:59.997',-2007 年 7 月' 23:59:59.997',-2007 年 8 月' 23:59:59.997',-2007 年 9 月' 23:59:59.997',-2007 年 10 月' 23:59:59.997',-2007 年 11 月' 23:59:59.997',-2007 年 12 月GO二、上一步是完成一个概念上的分区,接下来要完成一个物理的构建,使得属于不同分区的数据存储到不同的物理文件上去 .a.创建文件组创建多个文件组主要是

7、为了获得好的 I/O 平衡。一般情况下,文件组数最好与分区数相同,并且这些文件组通常位于不同的磁盘上。每个文件组可以由一个或多个文件构成,而每个分区必须映射到一个文件组。一个文件组可以由多个分区使用。为了更好地管理数据(例如,为了获得更精确的备份控制),对分区表应进行设计,以便只有相关数据或逻辑分组的数据位于同一个文件组中。使用ALTER DATABAS璐加逻辑文件组名:- -File group for 2006ALTER DATABASE MES ADD FILEGROUP Teaching200609ALTER DATABASE MES ADD FILEGROUP Teaching200

8、610ALTER DATABASE MES ADD FILEGROUP Teaching200611ALTER DATABASE MES ADD FILEGROUP Teaching200612- -File group for 2007ALTER DATABASE MES ADD FILEGROUP Teaching200701ALTER DATABASE MES ADD FILEGROUP Teaching200702ALTER DATABASE MES ADD FILEGROUP Teaching200703ALTER DATABASE MES ADD FILEGROUP Teachin

9、g200704ALTER DATABASE MES ADD FILEGROUP Teaching200705ALTER DATABASE MES ADD FILEGROUP Teaching200706ALTER DATABASE MES ADD FILEGROUP Teaching2007ALTER DATABASE MES ADD FILEGROUP Teaching200708ALTER DATABASE MES ADD FILEGROUP Teaching200709ALTER DATABASE MES ADD FILEGROUP Teaching200710ALTER DATABAS

10、E MES ADD FILEGROUP Teaching200711ALTER DATABASE MES ADD FILEGROUP Teaching200712b.创建物理文件,在这里,为了方便起见,把每个物理文件放到了一个单独的文 件组里面 .- -Add file for 2006ALTER DATABASE MESADD FILE(NAME=N'Teaching200609',FILENAME =N'D:MyDataMyLuTeaching200609.ndf',SIZE =5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB)TO

11、FILEGROUP Teaching200609ALTER DATABASE MESADD FILE(NAME=N'Teaching200610',FILENAME =N'D:MyDataMyLuTeaching200610.ndf',SIZE =5MB,MAXSIZE = 100MB,FILEGROWTH = 5MB)TO FILEGROUP Teaching200610ALTER DATABASE MESADD FILE(NAME=N'Teaching200611',FILENAME =N'D:MyDataMyLuTeaching20

12、0611.ndf',SIZE =5MB,MAXSIZE =100MB,FILEGROWTH = 5MB)TO FILEGROUP Teaching200611三、创建完分区函数,接下来就要建立分区架构,用来将概念上的分区和文件组 (物理文件)关联起来。创建分区函数后,必须将其与分区方案相关联,以便将分区指向至特定的文件组。就是定义实际存放数据的媒体与各数据块的对应关系。多个数据表可以共用相同的数据分区函数,一般不共用相同的数据分区方案。可以通过不同的分区方案,使用相同的分区函数,使不同的数据表有相同的分区条件,但存放在不同的媒介上。创建分区方案的代码如下:CREATE PARTION

13、SCHEME FiveYearDateRangePSchemeASPARTION FiveYearDateRangePFN TO( Teaching200609,Teaching200610,Teaching200611,Teaching200612,Teaching200701,Teaching200702,Teaching200703,Teaching200704,Teaching200705,Teaching200706,Teaching2007,Teaching200708,Teaching200709,Teaching200710,Teaching200711,Teaching200

14、712,PRIMARY )GO四、分区表的基础架构到此就完成了,接下来就要对原有的数据表建立分区SQLSERVE族根据分区键值的不同,通过分区函数的定义将数据放到相应的分区。从而把分区函数、分区方案和分区表三者有机的结合起来。创建分区表的代码 如下:ALTER TABLE REPORT_ITEMVALUESADDPRIMARY KEY NONCLUSTERED(reportid,rq,itemid)ON FiveYearDateRangePScheme(rq)GO五、维护分区分区的维护主要设计分区的添加、减少、合并和在分区间转换。可以通过ALTER PARTION FUNCTIONS项 SPLIT MERGED口 ALTER TABL的选项 SWITCH 来实现。SPLI检多增加一个分区,而 MEGRE合并或者减少分区,SWITCH则 是逻辑地在组间转换分区。在建立分区表的时候注意一下分区键的选择。接下来呢,就可以往分区表里面插入数据,SQL SERVER根据分区键的不同将 数据放到相应的分区 ,我们可以通过如下语句来查看数据存在那个分区中 :select $partion.FiveYearDateRangePFN(teachingdate),teachingdate,*from objteach

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论