优化SQLServer——表和分区索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了优化SQLServer——表和分区索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2603字,纯文字阅读大概需要4分钟。
内容图文
![优化SQLServer——表和分区索引](/upload/InfoBanner/zyjiaocheng/450/a9218d16ee8544bfaa5f2fc9e0fae219.jpg)
简单地说,分区是将大型的对象(如表)分成更小的且易于管理的小块。分区的基本单位是行,需要注意的是与分区视图不同的地方时,分区必须位于同一个数据库内。
分区的原因:
对于非常大的表在进行诸如数据库维护、备份或者还原操作的时候会消耗大量的时间;除此之外还会增加标的死锁或者并发性的问题的概率。当然我们也可以通过Database Tuning Advisor 运行工作负载,将对是否需要分区给出建议并生产代码。
创建分区的过程:
1.创建分区函数来定义一种数据放置策略。
create partition function years(datetime)
as range right
for values(‘时间点1’,’时间点2’…)
如上面的代码。最左边的分区是小于时间点1的所有数据行数据,第二个分区是大于或者等于时间点1小于时间点2的所有分区,以此类推即可。范围函数制定范围的边界,left 和right 关键字制定数据库引擎按照升序从左到右进行排序时边界值属于左边或者右边,这里不难发现我们这个是right 那么边界值属于右边。默认为left。
2.创建文件分组来支持分区函数。
作为最佳实践,一般可以创建用户对象,并将它映射到主文件组之外的文件组,按照之前的情况我们建立文件组y01,y02,y03…
3.创建分区方案来定义物理数据分布策略(将函数数据映射到文件组)。
分区方案是将数据库对象映射到物理实体(文件组)然后映射到文件的方案。进行这种决策时必须考虑备份、还原和数据归档。这留到以后专门的文章来介绍这块。
代码:create partition scheme yearscheme
as partition years to y01,y02…
4.创建分区函数创建表或索引。
创建分区表的语法跟常规表相同,唯一不同是在分区架构而不是特定或默认的文件组中创建。
create table 表名
( 字段1 类型 null,
字段2 类型 not null,
时间字段 datetime not null,…
constraint index
check([时间字段] >=‘时间点1’and [时间字段]<‘时间点2’)
) on yearscheme
go
5.享受对相应资源的重新定向查询。
最后我们还要考虑存储对齐和索引对齐带来的好处。通过alert table 表名 switch partition 分区 to 表
以及alert partition function prderdaterandepfn() merge range (‘时间点’) 来切换和合并分区。
总结:
我们知道什么时候使用分区,也知道了分区是一种性能提高的可选项或者可管理性和可扩展性,根据上面的步骤可以很快建立分区,提高数据库的效率。同时我们也要注意其影响的一下功能,如:数据库的备份还原,索引的维护,数据管理策略,工作负载,并发性(查询并发和表分区锁)等。
优化SQLServer——表和分区索引
标签:
本文系统来源:http://www.cnblogs.com/wenBlog/p/4562352.html
内容总结
以上是互联网集市为您收集整理的优化SQLServer——表和分区索引全部内容,希望文章能够帮你解决优化SQLServer——表和分区索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。