分区表--SQLServer创建分区表
分区表的定义大体上分为三个步骤:
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创建分区表相关推荐
- [转]sqlserver 创建分区表
本文转自:http://www.cnblogs.com/dongpo888/archive/2012/02/16/2355028.html 大凡在应用系统和数据库系统中行走江湖多年的朋友,都会面临数据 ...
- oracle创建表分区表,oracle创建分区表
这里的第一种方式创建分区表是最近更改程序时学会的,哈哈 -- 通过create table tablename as select * from tablename (指定分区) create tab ...
- 如何使用Data Lake Analytics创建分区表
前言 Data Lake Analytics (后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据 ...
- track_info分区表的创建并将ETL的数据加载到Hive表
文章目录 track_info分区表的创建 将ETL的数据加载到Hive表 track_info分区表的创建 分区表 因为日志是一天一个分区 create external table track_i ...
- PostgreSQL 创建分区表
PG 假如我们想像Hive那也创建动态分区是不能实现的. 那么需要我们手动通过脚本来创建分区表,创建分区表必须要创建主表和分区表. 因此我们可以根据我们需求提前用脚本把分区表生成即可, ...
- 15.PG分区表-内置分区表
文章目录 前言 一.PG分区表-内置分区表 1.创建分区表 2.使用分区表 3.内置分区表探索 4.添加分区 5.删除分区 6.性能测试 7.constraint_exclusion参数 8.PG14 ...
- SQL SERVER 性能优化四: 创建分区表
1.整体介绍 1.1 分区表概念:分区表值得是逻辑上是一个表,物理上被存储到不同的磁盘文件中. 1.2 优势:提高查询性能:提高稳定性:便于管理:对于大数据量表备份更方便. 1.3 建立分区表主要包含 ...
- oracle创建分区表
在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能. 以system身份登陆数据库,查看 v$option视图,如果其中Partition为TRUE,则支持分区功能:否则不支持 ...
- SQL Server 分区表的创建方法与管理
背景知识: 分区表.可以把表中的数据按范围保存到不同的文件组中. 举个例子吧: 2014年以前的数据保存到文件组A 2014~2015的数据保存到文件组B 2015年以后的数据保存到文件组C 好处: ...
最新文章
- python sort函数时间复杂度_STL用法及其时间复杂度分析
- BZOJ 2957: 楼房重建
- Kogito人机规则-第1部分:进一步解决流口水
- 天池 在线编程 矩阵还原(前缀和)
- Windows10+Ubuntu 18.04.2+ROS 安装笔记(SSD单硬盘)上
- 程序员工资那么高,却不知道怎么花?程序员花钱指南了解一下!
- kotlin和python哪个好_python替代品for一些java及kotlin功能(慎入啊慎入)
- ASP.NET Ajax In Action!读书笔记1
- 了不起的 Java VM-Java 虚拟机初探
- 成不了AI高手?因为你根本不懂数据!听听这位老教授多年心血练就的最实用统计学...
- python画k线_python下画k线
- EXCEL实现按照奇偶行填充
- 最好看的Excel条形图 如何用Excel图表把它做出来
- 深度神经网络为什么有效,神经网络处理什么问题
- 瞧,工程师绘图最佳实践!
- 【纪中受难记】——Day10:逐渐自闭
- SpringBoot学习之路---简单记录整合SpringSecurity实现登录认证授权
- redis集群的发布订阅模式
- Android系统的编舞者Choreographer
- MATLAB图形加标注的基本方法入门简介