分区表的定义大体上分为三个步骤:

1)定义分区函数

2)定义分区构架

3)定义分区表


4)修改分区表...

************* 以下为测试代码 *************

USE [master]

GO

CREATE DATABASE [Test] ON  PRIMARY

( NAME = N'Test', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Test.mdf' , SIZE = 3MB , MAXSIZE = UNLIMITED, FILEGROWTH = 2048KB ),

FILEGROUP [FG1]

( NAME = N'Test1', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Test1.ndf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),

FILEGROUP [FG2]

( NAME = N'Test2', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Test2.ndf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),

FILEGROUP [FG3]

( NAME = N'Test3', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Test3.ndf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )

LOG ON

( NAME = N'Test_log', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test_1.ldf' , SIZE = 1024KB , MAXSIZE = 2048MB , FILEGROWTH = 1024KB )

GO

USE [Test]

GO

--创建分区函数

CREATE PARTITION FUNCTION fnPartition(DATE)

AS RANGE RIGHT--LEFT是左边包含分割点,RIGHT是右边包含

FOR VALUES('2010-01-01','2012-01-01')

--查看分区函数是否创建成功

SELECT * FROM sys.partition_functions

USE [Test]

GO

--创建分区架构

CREATE PARTITION SCHEME SchemaForPartition

AS PARTITION fnPartition

TO ([primary], FG1, FG2)--因为有2个边界值,则有3个分区,需要指定3个文件组,也可以使用ALL指向一个文件组

--查看已创建的分区架构schema

SELECT * FROM sys.partition_schemes

--创建分区表

CREATE TABLE PartitionTable

(

id INT,

SalesDate DATE

) ON SchemaForPartition(SalesDate)--SalesDate为指定划分区列

--查看创建的分区表

SELECT * FROM SYS.partitions WHERE OBJECT_ID=OBJECT_ID('PartitionTable')

--插入测试记录

DECLARE @T DATE

SET @T = '2009-01-01'

WHILE @T < GETDATE()

BEGIN

INSERT INTO PartitionTable VALUES(123, @T)

SET @T = DATEADD(MM, 1, @T)

END

--查询表记录

SELECT * FROM PartitionTable

--查询分区

SELECT $PARTITION.fnPartition('2009-01-01') AS PartitionNum--2009-01-01这条记录所在的分区号

SELECT * FROM PartitionTable WHERE $PARTITION.fnPartition(SalesDate)=2--查询2号分区的所有记录

--查看每个分区的记录数

SELECT $partition.fnPartition(SalesDate) AS PartitionNum

, COUNT(*) AS NumRows

FROM PartitionTable

GROUP BY $partition.fnPartition(SalesDate)

ORDER BY $partition.fnPartition(SalesDate)

--提供分割点,合并分区

ALTER PARTITION FUNCTION fnPartition()

MERGE RANGE('2012-01-01')

--拆分分区,首先加入文件组

ALTER DATABASE [Test] ADD FILEGROUP [FG4]

GO

ALTER DATABASE [Test] ADD FILE ( NAME = N'FG4', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\FG4.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) TO FILEGROUP [FG4]

GO

--知道分割后多出来的分区应该存储在哪个文件组

ALTER PARTITION SCHEME SchemaForPartition NEXT USED 'FG4'

--添加分割点

ALTER PARTITION FUNCTION fnPartition()

SPLIT RANGE('2013-01-01')

--切换分区

--PartitionTable2没有分区,将数据全部插入PartitionTable的分区4中,表结构要一致

ALTER TABLE dbo.PartitionTable2

SWITCH TO dbo.PartitionTable PARTITION 4

转载于:https://blog.51cto.com/kinwar/1381419

分区表--SQLServer创建分区表相关推荐

  1. [转]sqlserver 创建分区表

    本文转自:http://www.cnblogs.com/dongpo888/archive/2012/02/16/2355028.html 大凡在应用系统和数据库系统中行走江湖多年的朋友,都会面临数据 ...

  2. oracle创建表分区表,oracle创建分区表

    这里的第一种方式创建分区表是最近更改程序时学会的,哈哈 -- 通过create table tablename as select * from tablename (指定分区) create tab ...

  3. 如何使用Data Lake Analytics创建分区表

    前言 Data Lake Analytics (后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据 ...

  4. track_info分区表的创建并将ETL的数据加载到Hive表

    文章目录 track_info分区表的创建 将ETL的数据加载到Hive表 track_info分区表的创建 分区表 因为日志是一天一个分区 create external table track_i ...

  5. PostgreSQL 创建分区表

    PG 假如我们想像Hive那也创建动态分区是不能实现的.         那么需要我们手动通过脚本来创建分区表,创建分区表必须要创建主表和分区表. 因此我们可以根据我们需求提前用脚本把分区表生成即可, ...

  6. 15.PG分区表-内置分区表

    文章目录 前言 一.PG分区表-内置分区表 1.创建分区表 2.使用分区表 3.内置分区表探索 4.添加分区 5.删除分区 6.性能测试 7.constraint_exclusion参数 8.PG14 ...

  7. SQL SERVER 性能优化四: 创建分区表

    1.整体介绍 1.1 分区表概念:分区表值得是逻辑上是一个表,物理上被存储到不同的磁盘文件中. 1.2 优势:提高查询性能:提高稳定性:便于管理:对于大数据量表备份更方便. 1.3 建立分区表主要包含 ...

  8. oracle创建分区表

    在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能. 以system身份登陆数据库,查看 v$option视图,如果其中Partition为TRUE,则支持分区功能:否则不支持 ...

  9. SQL Server 分区表的创建方法与管理

    背景知识: 分区表.可以把表中的数据按范围保存到不同的文件组中. 举个例子吧: 2014年以前的数据保存到文件组A 2014~2015的数据保存到文件组B 2015年以后的数据保存到文件组C 好处: ...

最新文章

  1. python sort函数时间复杂度_STL用法及其时间复杂度分析
  2. BZOJ 2957: 楼房重建
  3. Kogito人机规则-第1部分:进一步解决流口水
  4. 天池 在线编程 矩阵还原(前缀和)
  5. Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)上
  6. 程序员工资那么高,却不知道怎么花?程序员花钱指南了解一下!
  7. kotlin和python哪个好_python替代品for一些java及kotlin功能(慎入啊慎入)
  8. ASP.NET Ajax In Action!读书笔记1
  9. 了不起的 Java VM-Java 虚拟机初探
  10. 成不了AI高手?因为你根本不懂数据!听听这位老教授多年心血练就的最实用统计学...
  11. python画k线_python下画k线
  12. EXCEL实现按照奇偶行填充
  13. 最好看的Excel条形图 如何用Excel图表把它做出来
  14. 深度神经网络为什么有效,神经网络处理什么问题
  15. 瞧,工程师绘图最佳实践!
  16. 【纪中受难记】——Day10:逐渐自闭
  17. SpringBoot学习之路---简单记录整合SpringSecurity实现登录认证授权
  18. redis集群的发布订阅模式
  19. Android系统的编舞者Choreographer
  20. MATLAB图形加标注的基本方法入门简介

热门文章

  1. Tensorflow—非线形回归
  2. 演讲实录丨CAAI名誉副理事长杨强教授:人工智能的金融实践
  3. 马斯克:“星链”卫星已能提供服务
  4. 一文读懂5G:颠覆生活资费天价?
  5. AI人必看!89页全网最全清华知识图谱报告
  6. 全文!《2018中国IoT报告》!
  7. 美国《时代》周刊公布年度25大最佳发明名单
  8. 中科院等发布《2017研究前沿》 中国25个前沿表现卓越 居全球第二
  9. 那个全网下班最早的程序员,我发现了他的秘密……
  10. IBMDB2数据库软件安装教程