Sqlserver分区表
2024-10-07 09:11:59
1. 分区表简介
分区表在逻辑上是一个表,而物理上是多个表。从用户角度来看,分区表和普通表是一样的。使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性。
分区表是把数据按设定的标准划分成区域存储在不同的文件组中,使用分区可以快速而有效管理和访问数据子集。
1.1> 适合做分区表的情况
◊ 数据库中某个表的数据很多,在查询数据时会明显感觉到速度很慢,这个时候需要考虑分区表;
◊ 数据是分段的,如以年份为分隔的数据,对于当年的数据经常进行增删改查操作,而对于往年的数据几乎不做操作或只做查询操作,这种情况可以使用分区表。对数据的操作如果只涉及一部分数据而不是全部数据的情况可以考虑分区表,如果一张表的数据经常使用且不管年份之类的因素经常对其增删改查操作则最好不要分区。
1.2> 分区表的优点
◊ 分区表可以从物理上将一个大表分成几个小表,但是从逻辑上来看还是一个大表。
◊ 对于具有多个CPU的系统,分区可以对表的操作通过并行的方式进行,可以提升访问性能。
2. 创建分区表步骤
创建分区表的步骤分为5步:
(1)创建数据库文件组
(2)创建数据库文件
(3)创建分区函数
(4)创建分区方案
(5)创建分区表
--创建分区函数
CREATE PARTITION FUNCTION [Function_DateTime](datetime) --DATETIME此列的数据类型
AS RANGE RIGHT --其中RIGHT意思等于间隔值时是归于左还是右
FOR VALUES (N'2014-01-01T00:00:00.000', N'2015-01-01T00:00:00.000', N'2016-01-01T00:00:00.000',
N'2017-01-01T00:00:00.000', N'2018-01-01T00:00:00.000') --指定分区表中的指定列的间隔值
GO
--创建分区方案 每段的值映射到各个文件夹
CREATE PARTITION SCHEME [Scheme_DateTime]
AS PARTITION [Function_DateTime] --指明分区函数
TO ([FG2013], [FG2014], [FG2015], [FG2016], [FG2017], [FG2018]) --指明分区函数各段的数据放到指定的文件组
GO
--创建分区表
CREATE TABLE [dbo].[Shipment_Unit](
[CustomerID] [varchar](20) NOT NULL,
[SI] [varchar](50) NULL,
[SN] [varchar](100) NOT NULL,
[BoxID] [varchar](50) NULL,
[PalletID] [varchar](50) NULL,
[CreateTime] [datetime] NULL,
)
ON [Scheme_DateTime] (CreateTime) --指明分区方案及使用使用列
Go
最新文章
- Ceph剖析:线程池实现
- 【转】WIN32 控制台程序
- mysqldump 数据库迁移并改换engine
- 《Linux shell编程中 diff与vimdif的使用》RHEL6
- Spring中的实例生成方式及其生命周期
- WebUploader——一个页面多个实例上传图片
- 观察者模式在ng(Angular)中的应用
- POJ 2049 Finding Nemo
- ASP.NET中的路径(path) 详解
- 页面json 格式化+颜色高亮
- 在JDBC中使用Java8的日期LocalDate、LocalDateTime
- 前端之BOM和DOM
- LeetCode 102. Binary Tree Level Order Traversal 二叉树的层次遍历 C++
- mig_7series DDR控制器的配置
- 整理mianshi2
- An Introduction to Protocol Oriented Programming in Swift
- Linux为sh脚本文件添加执行权限
- [Spring Boot] Introduce to Mockito
- 软件需求规格说明书(转自http://blog.csdn.net/li_canhui/article/details/6927540)
- C程序设计语言习题(1-12)
热门文章
- SpringBoot2.0源码分析(四):spring-data-jpa分析
- Java集合:整体结构
- git在工作中的用法总结-使用篇
- win8 notepad++ 设置无法保存
- npm install 失败
- [转]php模拟post提交请求,调用接口
- 【转载】Centos系统采用NVM安装Node.js环境
- SQL SERVER PIVOT与用法解释
- CheckForIllegalCrossThreadCalls = false 是干嘛的?
- cronolog日志切割catalina.out