1、整体介绍

1.1 分区表概念:分区表值得是逻辑上是一个表,物理上被存储到不同的磁盘文件中。

1.2 优势:提高查询性能;提高稳定性;便于管理;对于大数据量表备份更方便。

1.3 建立分区表主要包含三个步骤:

(1)定义分区函数

(2)定义分区构架

(3)定义分区表

2、具体实例

在创建分区表前,数据库中应存在不同的文件组;若没有,则新增。

假设数据库名为DF17DataPro,创建用户表UserID,将前50万数据放在fg1文件组,50~100万放在primary中,100万以上放在fg2文件组

2.1 添加文件组fg1,fg2

ALTER  DATABASE DF17DataPro
ADD FILEGROUP fg1
ALTER  DATABASE DF17DataPro
ADD FILEGROUP fg2

2.2 为文件组添加文件

ALTER TABLE DF17DataPro
ADD FILE (NAME=DF17DataPro1,FILENAME='D:\DF17DataPro.ndf')
TO FILEGROUP fg1
ALTER TABLE DF17DataPro
ADD FILE (NAME=DF17DataPro2,FILENAME='E:\DF17DataPro.ndf')
TO FILEGROUP fg2

2.3  创建分区函数

CREATE PARTITION FUNCTION MyRangeFunction(int)AS RANGE RIGHT FOR VALUES(500000,1000000)GO--分区函数的作用是,设置分区表的边界;根据给定的边界值,将数据内容划分到不同的表中。--查看分区表是否创建成功
--SELECT * FROM sys.partition_functions

2.4  基于分区函数创建分区架构

CREATE PARTITION SCHEME MyRangeSchema
AS PARTITION  MyRangeFunction
TO(fg1,[primary],fg2)--定义完分区函数仅仅知道了根据列的值将数据分配到不同的分区。而每个分区的存储方式,则需要分区构架来定义。
--查看已创建的分区构架
--SELECT * FROM sys.partition_schemes

2.5  指定ID列作为分区方案创建用户表

CREATE TABLE USER
(
UserID int not NULL,
UserName varchar(10) NULL
) ON MyRangeSchema(UserID)

3、补充:

3.1 删除分区语法
drop partition function <分区函数名>

需要注意的是,只有没有应用到分区方案中的分区函数才能被删除。

3.2  删除分区方案

--删除分区方案语法
drop partition scheme <分区方案名称>

只有没有分区表或索引使用该分区方案时,才能对其删除。

建议:最好在建表的时候,就判定好分割点,当分区后,若再重新分割已有分区,系统会先将原先分区删掉再将数据复制到新分区,会极大的增大IO开销。

  • 日志类表(操作日志、系统日志、结果记录、任务记录等)的分区处理:按时间进行分区
  • 交易类表(流水、明细、对账、差异等)的分区处理:按创建时间或更新时间进行分区
  • 通知类表的分区处理:按时间进行分区
  • 分区字段的选取:一般是以最经常查询的那个字段来进行分区,这样会有助于提高查询速度。不建议使用 id 进行分区,除非业务系统里固定的 id=? 查询特别多,否则不仅是对分区索引的浪费,而且可能会比没有分区还要慢
  • 不管是 range 分区,还是 hash 分区,在做分区的时候都要考虑到分区的可扩展性,原则上分区后的 2 年内不应该再考虑重新分区的事情,分区到期后根据业务量增长情况再加 2 年的分区…以此类推
  • 各个分区内的数据要较为均匀,不要太多也不要太少,而且根据分区字段可以很快定位到分区范围
  • 具体每个分区内数据量多少合适?原则上是把数据的范围缩小到一个即使做全盘扫描也不会慢的时候为最佳,视具体情况为几十万或上百万不等
  • 相关业务操作(SQL)尽量在同一个分区内部完成。必须跨分区提取的话建议并行提取以提高速度
  • 此段建议引自http://blog.csdn.net/defonds/article/details/52241432

转载于:https://www.cnblogs.com/Miss-Bueno/p/7389098.html

SQL SERVER 性能优化四: 创建分区表相关推荐

  1. SQL Server性能优化与管理的艺术 附件下载地址

    首先感谢读者们对鄙人的支持,购买了<SQL Server性能优化与管理的艺术>,由于之前出版社的一些疏忽,附件没有上传成功,再次本人深表歉意. 请需要下载附件的读者从下面链接下载,谢谢: ...

  2. SQL Server 性能优化之——系统化方法提高性能

    原文 http://www.cnblogs.com/BoyceYang/archive/2013/06/15/3138142.html 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索 ...

  3. SQL Server性能优化案例报告

    . 问题分析 1.1             现象描述 某企业客户内部知识管理系统基于微软SharePoint服务器产品并进行了应用扩展开发,NLB负载均衡部署,后台数据库采用SQL Server 2 ...

  4. SQL Server性能优化

    http://blog.csdn.net/chyliu/archive/2007/11/06/1870539.aspx 如果你曾经做了很长时间的DBA,那么你会了解到SQLServe的性能调优不是一个 ...

  5. SQL SERVER性能优化综述

    近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERV ...

  6. SQL SERVER性能优化综述(转载)

    from:http://blog.csdn.net/Haiwer/archive/2008/08/25/2826881.aspx 近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化 ...

  7. linux sql server调优,SQL SERVER性能优化(转)

    [IT168技术文档] 1. 用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分开的操作尽量分开处理,提高每次的 ...

  8. SQL SERVER性能优化-查询速度提高

    近段时间去面试,很多都会问到关于SQL语句优化及大数据量数据查询速度提升的问题,但是由于我个人之前开发都是一知半解的状态,很多东西都没能掌握明白,感觉自己就是菜鸟一枚,晕死,和朋友闲聊聊到查询效率的提 ...

  9. MySQL优化之二:My SQL Server性能优化

    1 安装优化 一般说来,系统功能越多越复杂,性能就会越差.因此在编译安装MySQL时,仅安装需要的功能模块.如存储引擎.需要的字符集等,让系统尽可能的简单. 2 日志设置优化 由于日志记录直接带来的性 ...

最新文章

  1. 找不到在标准的SAP C4C system字段里新增entry的办法
  2. Vue或React多页应用脚手架
  3. MasterPage 小谈
  4. 新手程序员不知道的小技巧!
  5. mysql 标记_Mysql操作基础,标记一上
  6. Oracle 11.2.0.4.0 Dataguard部署和日常维护(7) - Dataguard Flashback篇
  7. 程序员之痛:六次创业五回失败了
  8. oracle聚合函数rank()的用法和一些体会
  9. Windows Server 2008 多元密码策略配置
  10. [转]《谁让你是飞鸟我是鱼》by(晨曦)
  11. java ee课程设计_javaee课程设计
  12. AI之语音转写项目实践
  13. 太阳能热水器工作原理
  14. 记一次微信小程序canvas 2d 生成海报问题
  15. 微信小程序里面的标签和html标签的对比、微信小程序基础之常用控件
  16. sql字符串和数字转换
  17. protractor测试框架6----报告、公共方法、公共变量
  18. TypeScript 基础数据类型与接口
  19. 构建属于自己的 jre Docker 镜像
  20. 黑猴子的家:Java SE 知识储备

热门文章

  1. windows10 自动开机、关机
  2. 快速小目标检测--Feature-Fused SSD: Fast Detection for Small Objects
  3. 报错解决:InvalidArgumentError: Received a label value of 101 which is outside the valid range of [0, 101
  4. centos7 解决chrome提示您的连接不是私密连接的方法
  5. mysql自定义函数实现,自定义oracle中decode方法
  6. centos 安装指定版本gc_CentOS 环境安装所需命令
  7. 3.Spring Security 自定义用户认证
  8. MAC OS下使用OpenSSL生成私钥和公钥的方法
  9. MATLAB神经网络样本数量太大,MATLAB搭建bp神经网络的误差特别大,但R2的值也大,求解帮我看看我的网络哪里出问题了...
  10. 这款开源测试神器,圆了我玩游戏不用动手的梦想