sqlserver2005中的分区表和索引

sqlserver2005中的分区表和索引

ID:8967792

大小:529.50 KB

页数:24页

时间:2018-04-13

sqlserver2005中的分区表和索引_第1页
sqlserver2005中的分区表和索引_第2页
sqlserver2005中的分区表和索引_第3页
sqlserver2005中的分区表和索引_第4页
sqlserver2005中的分区表和索引_第5页
资源描述:

《sqlserver2005中的分区表和索引》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、SQLServer2005中的分区表和索引发布日期:3/24/2005

2、更新日期:3/24/2005KimberlyL.TrippSQLskills.com的创始人适用于:SQLServer2005摘要:SQLServer2005中基于表的分区功能为简化分区表的创建和维护过程提供了灵活性和更好的性能。追溯从逻辑分区表和手动分区表的功能到最新分区功能的发展历程,探索为什么、何时以及如何使用SQLServer2005设计、实现和维护分区表。(本文包含一些指向英文站点的链接。)关于本文本文所描绘的功能和计划是下一版本SQLServer的开发方向。它们并非本产品的说明

3、书,如有更改,恕不另行通知。对于最终产品是否具有这些功能不做任何明示或暗示的保证。对于某些功能,本文假设读者熟悉SQLServer2000功能和服务。有关背景信息,请访问SQLServer网站或SQLServer2000资源工具包。这并不是产品说明书。下载相关的代码示例SQL2005PartitioningScripts.exe。本页内容为什么要进行分区?分区的发展历史定义和术语创建分区表的步骤融会贯通:案例研究总结为什么要进行分区?什么是分区?为什么要使用分区?简单的回答是:为了改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。通常,创建表是为了存储某

4、种实体(例如客户或销售)的信息,并且每个表只具有描述该实体的属性。一个表对应一个实体是最容易设计和理解的,因此不需要优化这种表的性能、可伸缩性和可管理性,尤其是在表变大的情况下。大型表是由什么构成的呢?超大型数据库(VLDB)的大小以数百GB计算,甚至以TB计算,但这个术语不一定能够反映数据库中各个表的大小。大型数据库是指无法按照预期方式运行的数据库,或者运行成本或维护成本超出预定维护要求或预算要求的数据库。这些要求也适用于表;如果其他用户的活动或维护操作限制了数据的可用性,则可以认为表非常大。例如,如果性能严重下降,或者每天、每周甚至每个月的维护期间有两个小

5、时无法访问数据,则可以认为销售表非常大。有些情况下,周期性的停机时间是可以接受的,但是通过更好的设计和分区实现,通常可以避免或最大程度地减少这种情况的发生。虽然术语VLDB仅适用于数据库,但对分区来说,了解表的大小更重要。除了大小之外,当表中的不同行集拥有不同的使用模式时,具有不同访问模式的表也可能会影响性能和可用性。尽管使用模式并不总是在变化(这也不是进行分区的必要条件),但在使用模式发生变化时,通过分区可以进一步改善管理、性能和可用性。还以销售表为例,当前月份的数据可能是可读写的,但以往月份的数据(通常占表数据的大部分)是只读的。在数据使用发生变化的类似情

6、况下,或在维护成本随着在表中读写数据的次数增加而变得异常庞大的情况下,表响应用户请求的能力可能会受到影响。相应地,这也限制了服务器的可用性和可伸缩性。此外,如果以不同的方式使用大量数据集,则需要经常对静态数据执行维护操作。这可能会造成代价高昂的影响,例如性能问题、阻塞问题、备份(空间、时间和运营成本),还可能会对服务器的整体可伸缩性产生负面影响。分区可以带来什么帮助?当表和索引变得非常大时,分区可以将数据分为更小、更容易管理的部分,从而提供一定的帮助。本文重点介绍横向分区,在横向分区中,大量的行组存储在多个相互独立的分区中。分区集的定义根据需要进行自定义、定义

7、和管理。MicrosoftSQLServer2005允许您根据特定的数据使用模式,使用定义的范围或列表对表进行分区。SQLServer2005还围绕新的表和索引结构设计了几种新功能,为分区表和索引的长期管理提供了大量的选项。此外,如果具有多个CPU的系统中存在一个大型表,则对该表进行分区可以通过并行操作获得更好的性能。通过对各个并行子集执行多项操作,可以改善在极大型数据集(例如数百万行)中执行大规模操作的性能。通过分区改善性能的例子可以从以前版本中的聚集看出。例如,除了聚集成一个大型表外,SQLServer还可以分别处理各个分区,然后将各个分区的聚集结果再聚集

8、起来。在SQLServer2005中,连接大型数据集的查询可以通过分区直接受益;SQLServer2000支持对子集进行并行连接操作,但需要动态创建子集。在SQLServer2005中,已分区为相同分区键和相同分区函数的相关表(如Order和OrderDetails表)被称为已对齐。当优化程序检测到两个已分区且已对齐的表连接在一起时,SQLServer2005可以先将同一分区中的数据连接起来,然后再将结果合并起来。这使SQLServer2005可以更有效地使用具有多个CPU的计算机。返回页首分区的发展历史分区的概念对SQLServer来说并不陌生。实际上,此产

9、品的每个版本中都可以实现不同形式的分区

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。