sqlserver 分区

sqlserver 分区,第1张

概述SQL SERVER 创建表分区步骤 1. 创建分区函数 2. 创建分区架构 3. 创建表分区 创建如下数据库文件组的路径 -- 1 .创建数据库文件组分区IF EXISTS (SELECT name FROM sys.databases WHERE name = N'PartDB')DROP DATABASE PartDBGOCREATE DATABASE [PartDB]ON sql SERVER 创建表分区步骤

1. 创建分区函数

2. 创建分区架构

3. 创建表分区


创建如下数据库文件组的路径



-- 1 .创建数据库文件组分区IF  EXISTS (SELECT name FROM sys.databases WHERE name = N'PartDB')DROP DATABASE PartDBGOCREATE DATABASE [PartDB]ON PRIMARY(name= 'PartDB_PFG',filename= 'I:\sqlserver\Partition\Primary\PartDB_PFG.mdf',SIZE=5MB,MAXSIZE=50MB,fileGROWTH=1MB),fileGROUP [PartDB_FG01](name= 'PartDB_FG01',filename= 'I:\sqlserver\Partition\filegroup01\PartDB_FG01.mdf',MAXSIZE=100MB,fileGROWTH=5MB),fileGROUP [PartDB_FG02](name= 'PartDB_FG02',filename= 'I:\sqlserver\Partition\filegroup02\PartDB_FG02.mdf',fileGROUP [PartDB_FG03](name= 'PartDB_FG03',filename= 'I:\sqlserver\Partition\filegroup03\PartDB_FG03.mdf',fileGROUP [PartDB_FG04](name= 'PartDB_FG04',filename= 'I:\sqlserver\Partition\filegroup04\PartDB_FG04.mdf',fileGROUP [PartDB_FG05](name= 'PartDB_FG05',filename= 'I:\sqlserver\Partition\filegroup05\PartDB_FG05.mdf',fileGROWTH=5MB)LOG ON(name= 'PartDB_LOG',filename= 'I:\sqlserver\Partition\logfile\PartDB_LOG.ldf',SIZE=1MB,fileGROWTH=1MB)USE PartDBGO-- 2. 创建范围分区函数CREATE PARTITION FUNCTION pf_tab_ProductKey(int)AS RANGE leftFOR VALUES (300,400,500,600);-- 3. 创建分区架构CREATE PARTITION SCHEME schema_pf_tab_ProductKeyAS PARTITION pf_tab_ProductKeyTO(PartDB_FG01,PartDB_FG02,PartDB_FG03,PartDB_FG04,PartDB_FG05)-- 4. 创建表CREATE table [dbo].[parttable](	[ProductKey] [int] NulL,[CustomerKey] [int] NulL,[OrderDateKey] [int] NulL,[UnitPrice] [money] NulL,[UnitPricediscountPct] [float] NulL,[dizhi] [varchar](50) NulL) ON schema_pf_tab_ProductKey(ProductKey) --指定分区方案,以ProductKey为分区列INSERT INTO parttable SELECT * from Sales_DW.dbo.tab --我从另一个数据库表取数据,60398条数据-- 5. 查看使用情况 SELECT * FROM sys.partition_functionsSELECT * FROM sys.partition_schemesSELECT * FROM sys.partition_range_valuesSELECT * FROM sys.partition_parametersSELECT * FROM sys.partitions-- 6. 新增分区方案。先指定下一个文件组,再添加划分范围-- 分割时分区锁定,数据迁移重组,消耗大量IOALTER PARTITION SCHEME schema_pf_tab_ProductKey NEXT USED 'PartDB_FG05'ALTER PARTITION FUNCTION pf_tab_ProductKey()SPliT RANGE (700)-- 7. 合并分区(相当删除)--如果分区函数定义的是left,左分区合并到右分区;right,右分区合并到左分区ALTER PARTITION FUNCTION pf_tab_ProductKey()MERGE RANGE (700)



/*【创建分区函数】CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type )AS RANGE [ left | RIGHT ] FOR VALUES ( [ boundary_value [,...n ] ] ) [ ; ]partition_function_name:	是分区函数的名称。分区函数名称在数据库内必须唯一,并且符合标识符的规则。	input_parameter_type:	是用于分区的列的数据类型。当用作分区列时,除 text、ntext、image、xml、timestamp、varchar(max)、nvarchar(max)、varbinary(max)、别名数据类型或 CLR 用户定义数据类型外,所有数据类型均有效。		实际列(也称为分区列)是在 CREATE table 或 CREATE INDEX 语句中指定的boundary_value:	为使用 partition_function_name 的已分区表或索引的每个分区指定边界值。	如果 boundary_value 为空,则分区函数使用 partition_function_name 将整个表或索引映射到单个分区。	只能使用 CREATE table 或 CREATE INDEX 语句中指定的一个分区列。	指定 boundary_value 提供的值的数目,不能超过 999	left | RIGHT:		指定当间隔值由 数据库引擎 按升序从左到右排序时,boundary_value [,...n ] 属于每个边界值间隔的哪一侧(左侧还是右侧)。	如果未指定,则默认值为 left【创建个分区架构】CREATE PARTITION SCHEME partition_scheme_nameAS PARTITION partition_function_name[ ALL ] TO ( { file_group_name | [ PRIMARY ] } [,...n ] )[ ; ]partition_scheme_name	分区方案的名称。分区方案名称在数据库中必须是唯一的,并且符合标识符规则。partition_function_name	使用分区方案的分区函数的名称。分区函数所创建的分区将映射到在分区方案中指定的文件组。	partition_function_name 必须已经存在于数据库中。ALL	指定所有分区都映射到在 file_group_name 中提供的文件组,或映射到主文件组(如果指定了 [PRIMARY]。	如果指定了 ALL,则只能指定一个 file_group_name。file_group_name | [ PRIMARY ] [,...n]	指定用来持有由 partition_function_name 指定的分区的文件组的名称。	file_group_name 必须已经存在于数据库中。*/
总结

以上是内存溢出为你收集整理的sqlserver 分区全部内容,希望文章能够帮你解决sqlserver 分区所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1176961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存