您的位置: turnitin查重官网> 工程 >> 电力工程 >论新功能MICROSOFTSQLSERVER2005分区新功能

论新功能MICROSOFTSQLSERVER2005分区新功能

收藏本文 2024-03-19 点赞:31407 浏览:144593 作者:网友投稿原创标记本站原创

摘要:本文介绍了分区在微软数据库SQLServer2005中的实施和应用,尤其是应用在海量数据的数据库上时,可优化文件均衡放置,加快查询速度。
关键词:SQL SERVER 2005 表 分区 索引 死锁
1007-9416(2013)01-0137-01
随着数据库使用的深入,我们面临着数据库越来越大的问题。为了解决这一问题,数据库厂家引入了分区(Partitioning)的概念。ORACLE从8i开始就引入了初步的范围分区功能,到11g就扩展了Interval分区-外键分区、虚拟列分区、引入了分区建议器等扩展功能。微软从Microsoft SQL7.0开始通过分区视图实现各种分区方式,到2005版对大型数据库的分区又大大的前进了一步。通过使用分区,我们能把数据库工作表或索引放置在提前设置的文件组上。这项新功能可以让表和索引的指定片放置在独立的文件组里,这样能有效的管理比较脆弱工作表的输入和输出。[U1]改善了这些工作表以及具有各种访问模式的表的可伸缩性和可管理。尤其表现在数以百GB甚至以TB计算的大型数据库里,单个的工作表也可能非常大,性能严重下降,数据查询反应较慢。如采取提前设计和分区实现,能大大缓解数据库的查询反应慢、数据死锁、备份时间较长等问题。
由于在SQL Server Management Studio(SS)中没有实施分区的图形界面,只能由我们进行手工写SQL语句进行与分区有关的操作。
具体操作步骤如下:

1 创建一个分区函数

语句如下:CREAT PARITION FUNCTION partition_funtction_name(input_parameter_type) As Range [LEFT|REGHT] FOR VALUES([boundary_value[,,,n]])
我们首先要为分区函数提供一个符合对象标识规则的名称,然后说明输入参数的类型。可使用用户定义的或编程语言使用的大多数的数据类型。

2 规划创建分区架构

接下来,我们为工作表、索引、及索引视图创建一个分区架构。这一步的工作就是将分区架构映射到特定的物理存储结构文件组中去。实施语句实例如下:CREAT PARTITION SCHEME partfunc TO ([FG1],[FG2],[FG3],[FG4],[FG5],[FG6]),该语句实施后的意图是partfunc有6个分区,数据库将分区1的值放入FG1中,分区2的值放入FG2中。依

源于:论文网站www.udooo.com

次类推,工作表、索引、及视图中属于某个文件组的数据集即可被确定。语句如下:CREAT PARTITION SCHEME AS PARTITION partfunc TO ([FG1],[FG2],[FG3]);

3 在分区架构上创建分区表、分区索引

在创建分区函数和分区架构的基础上,我们即做分区表和索引了。创建分区表的语句如下:CREATE TABLE dbo.表名(id INT v CHAR(1000) DEFAULT ‘aaaa’,CONSTRAINT ci_ti_id PARMARY KEY CLUSTERED(id)

4 查询分区

在上几步所做的工作对于数据库的使用者来讲,无论开发人员还是数据查询人员都感觉不到与以往有任何差异,无任何不方便。但作为数据库的设计和管理人员来讲,却可通过查询分区的内部构件,来了解分区的结构要素。如下语句可查询给定的分区号:SELECT $partition.partfunc(2748) as [PartitionNum]。如下语句可查询特定的分区:SELECT * FROM dbo.CustomerAddress WHERE $partition.parfunc(CustomerAddressID)=3

5 管理分区

在创建了工作表、索引、视图后,我们即可用SPLIT、MERGE和SWITCH运算来管理分区,将数据放入合适的分区中,进而放入的特定的文件组中。其作用分别是SPLIT为分区函数引入一个新的边界点。MERGE删除一个分界点,SWITCH用来把一个已填充数据的分区添加到一个表中。或从一个表中删除与一个分区对应的数据。其操作不会引起数据库事务的阻塞,是无限可伸缩的。
6 结语
上面我们讨论了分区的功能、定义、及实施步骤,但是数据库是否进行分区还要具体情况具体分析。若数据库及工作表较小、较简单,则无必要进行分区工作,否则将增加数据库的复杂性,及数据库维护和实施的复杂性。要综合考虑、权衡利弊,对于数据库的数据容量要有前瞻性的判断,大型数据库若通过实施分区工作,可轻松地管理表和索引。分区也是加速大型数据库查询、文件分散均衡放置的一个较好的方案。
参考文献
SQL Server2005实现与维护,第六章.

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号