SQLserver创建分区表

合集下载

sqlserver 分区策略

sqlserver 分区策略

SQL Server 分区策略是用于将一个大的表或索引划分为多个较小的、更易于管理的部分,以提高查询性能和管理效率。

以下是一些常见的SQL Server 分区策略:
1.按日期分区:这是最常见的一种分区策略。

例如,你可以按月、按年或者按周
对数据进行分区。

这种策略通常用于时间序列数据,例如订单、日志等。

2.按范围分区:根据某个列的值范围进行分区。

例如,你可以根据邮政编码、国
家代码等进行分区。

3.按列表分区:根据某个列的离散值进行分区。

例如,你可以根据性别、地区等
进行分区。

4.哈希分区:根据哈希函数对数据进行分区。

这种策略通常用于数据分布均匀的
情况。

5.空间分区:根据地理空间数据进行分区。

例如,你可以根据地理位置、经纬度
等进行分区。

6.复合分区:结合以上几种策略进行分区。

例如,你可以先按日期分区,然后在
每个日期分区内再按范围分区。

在实施SQL Server 分区时,你需要考虑以下几个因素:
•性能:分区的目的是提高查询性能和管理效率。

因此,你需要确保分区策略能够满足这些需求。

•维护:分区的创建、重建和优化需要一定的维护工作。

你需要考虑这些操作的频率和复杂性。

•数据量:你需要考虑你的表或索引的大小,以及数据的增长速度,以便选择合适的分区策略。

•查询模式:你需要了解你的查询模式,以便选择能够提高查询性能的分区键。

最后,你需要根据你的具体情况和需求来选择合适的分区策略。

sql server 分区注意事项-概述说明以及解释

sql server 分区注意事项-概述说明以及解释

sql server 分区注意事项-概述说明以及解释1.引言1.1 概述SQL Server是一种关系型数据库管理系统,具有强大的数据处理和存储能力。

在处理大规模数据时,为了提高查询性能和维护数据的效率,我们可以使用分区技术来对数据库进行划分。

分区是将数据库表或索引按某种规则划分成多个逻辑上相互独立的部分,每个部分称为一个分区。

每个分区可以单独进行管理和维护,使得数据的访问和处理更加高效快速。

在使用SQL Server分区技术时,需要注意以下几点:首先,分区设计需要根据具体的业务需求进行合理的划分。

不同的业务场景可能需要不同的分区策略,如按照时间、地域或其他特定的业务属性进行分区。

合理的分区设计可以提高查询性能,并提供更好的数据管理能力。

其次,分区键的选择非常重要。

分区键是指用于划分分区的列或列集合,可以是表中的任意列。

选择一个适合的分区键可以提高查询性能和数据加载的效率。

通常,选择具有高选择性的列作为分区键会得到较好的效果。

另外,分区表的维护和管理也需要特别关注。

由于分区表的数据分布在不同的分区中,因此需要针对每个分区进行独立的维护工作,如备份、索引维护和数据迁移等。

同时,需要注意监控每个分区的使用情况,及时进行分区的调整或优化。

最后,使用分区功能可能涉及到一些限制和注意事项。

例如,分区表的设计需要遵循一些特定的规则和限制,如每个分区的大小应该合理控制,避免某个分区过大或过小。

此外,分区表的查询和删除操作也需要特别注意,以确保操作的正确性和效率。

总之,SQL Server分区技术可以提高数据库的性能和数据管理的灵活性,但在使用分区功能时需要注意以上几点,以确保分区设计的合理性和分区表的正常运行。

1.2 文章结构本文将按照以下结构进行讨论和介绍sql server 分区的注意事项:1. 引言:首先,我们会在引言部分简要介绍sql server 分区的概述,包括其定义、作用和应用场景。

同时,我们还会说明本文的目的,即为读者提供一些有关sql server 分区的注意事项,以帮助他们在使用和设计分区时避免一些常见的问题和错误。

sql server建表规则

sql server建表规则

SQL Server建表规则在使用SQL Server进行数据库设计和建表时,遵循一定的规则和标准是非常重要的。

这不仅可以提高数据库的性能和可维护性,还可以减少日后的问题和错误。

本文将介绍SQL Server建表的规则和注意事项,帮助您设计出高质量、高效的数据库表结构。

一、命名规则1.1 表名命名规则在SQL Server中,表名需要具有描述性,能够清晰地表达表所存储的数据内容。

表名应该使用英文,采用下划线或驼峰命名法,避免使用特殊字符或中文命名。

可以使用"order_det本人l"或者"OrderDet本人l"作为表名。

1.2 字段名命名规则字段名也需要具有描述性,能够清晰地说明字段所存储的数据内容。

字段名应该使用英文,采用下划线或驼峰命名法,避免使用特殊字符或中文命名。

可以使用"order_id"或者"OrderId"作为字段名。

1.3 主键命名规则主键字段的命名一般为表名加上“_id”的形式,例如“order_id”。

主键字段名一般需要在字段名前面加上"pk_"前缀或者在字段名后面加上"_pk"后缀,以明确表示该字段为主键。

“pk_order_id”或者“order_id_pk”。

1.4 外键命名规则外键字段的命名一般为所引用表的表名加上“_id”的形式,例如“customer_id”。

外键字段名一般需要在字段名前面加上"fk_"前缀或者在字段名后面加上"_fk"后缀,以明确表示该字段为外键。

“fk_customer_id”或者“customer_id_fk”。

二、字段规则2.1 数据类型选择在选择字段的数据类型时,需要根据存储的数据内容和对数据的操作进行合理的选择。

对于存储整数类型的字段,可以选择int或者bigint;对于存储字符串类型的字段,可以选择nvarchar或者varchar。

SqlServer中CREATEPARTITIONFUNCTION使用

SqlServer中CREATEPARTITIONFUNCTION使用

SqlServer中CREATEPARTITIONFUNCTION使⽤表分区的操作三步⾛:
1.创建分区函数
CREATE PARTITION FUNCTION xx1(int)
解释:在当前数据库中创建⼀个函数,该函数可根据指定列的值将表或索引的各⾏映射到分区。

语法:
CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type )
AS RANGE [ LEFT | RIGHT ]
FOR VALUES ( [ boundary_value [ ,...n ] ] )
[ ; ]
创建分区的范围:
AS RANGE LEFT FOR VALUES (10000, 20000);
注释:创建分区函数:myRangePF2,以INT类型分区,分三个区间,10000以内在A 区,1W-2W在B区,2W以上在C区.
2.创建分区架构:
CREATE PARTITION SCHEME myRangePS2
AS PARTITION xx1
TO (a, b, c);
注释:在分区函数XX1上创建分区架构:myRangePS2,分别为A,B,C三个区间
A,B,C分别为三个⽂件组的名称,⽽且必须三个NDF⾪属于这三个组,⽂件所属⽂件组⼀旦创建就不能修改
3.对表进⾏分区
CREATE TABLE [dbo].[AvCache](
[AVNote] [varchar](300) NULL,
[bb] [int] IDENTITY(1,1)
) ON [myRangePS2](bb); --注意这⾥使⽤[myRangePS2]架构(即分区策略),根据bb分区。

sql server分区函数

sql server分区函数

sql server分区函数SQL Server分区函数是SQL Server数据库中的一种功能,用于将表或索引中的数据分别存储在不同的分区中。

通过使用分区函数,可以将数据均匀地分布在多个分区中,提高查询性能、数据加载速度以及数据维护的效率。

下面将详细介绍SQL Server分区函数的使用方法和相关注意事项。

一、什么是分区函数在SQL Server数据库中,分区函数是用于定义分区方案的一种方法。

分区方案是将表或索引按照某种规则分割成多个分区的过程。

而分区函数则是用来确定数据应该被分配到哪个分区中的规则。

二、分区函数的创建在SQL Server中,可以通过CREATE PARTITION FUNCTION语句来创建分区函数。

创建分区函数时需要指定函数的名称、参数类型和返回值类型。

例如,可以创建一个按照日期进行分区的分区函数,如下所示:CREATE PARTITION FUNCTION PartitionByDate(DATE)AS RANGE RIGHT FOR VALUES ('2019-01-01', '2020-01-01', '2021-01-01')上述语句创建了一个名为PartitionByDate的分区函数,参数类型为DATE,返回值类型为INT。

分区函数的参数类型决定了分区函数所依据的列的数据类型。

三、分区函数的使用在创建分区函数后,可以通过ALTER TABLE或CREATE INDEX语句来应用分区函数。

例如,可以将一个表按照日期进行分区,如下所示:ALTER TABLE TableNamePARTITION BY RANGE (ColumnToPartition)(PARTITION Partition1 VALUES LESS THAN (DateValue1),PARTITION Partition2 VALUES LESS THAN (DateValue2),...)上述语句将名为TableName的表按照ColumnToPartition列的值进行分区,并指定了每个分区的范围。

sqlserver几种建表方式

sqlserver几种建表方式

sqlserver几种建表方式摘要:1.SQL Server 简介2.建表的基本概念3.创建表的语法4.几种建表方式及其示例5.建表的注意事项正文:1.SQL Server 简介SQL Server 是由Microsoft 公司开发的一款关系型数据库管理系统,广泛应用于企业级数据存储和管理。

SQL Server 提供了丰富的功能和高效的性能,可以满足各种不同类型的业务需求。

2.建表的基本概念在建立数据库时,我们需要创建表来存储数据。

表是数据库中的一种基本对象,它可以看作是一个数据容器,用于存储具有相同属性的数据记录。

在SQL Server 中,建表是指创建一个新的表,并定义其结构和属性。

3.创建表的语法在SQL Server 中,创建表的语法如下:```sqlCREATE TABLE 表名(列名1 数据类型,列名2 数据类型,列名3 数据类型,...);```其中,表名是我们为新表起的名字,列名1、列名2、列名3 等是用于存储数据的列,数据类型表示该列存储的数据类型,如int、varchar、datetime 等。

4.几种建表方式及其示例(1) 使用单个CREATE TABLE 语句创建表```sqlCREATE TABLE Employees (EmployeeID int PRIMARY KEY,FirstName varchar(50),LastName varchar(50),Email varchar(100),Phone varchar(20));```(2) 使用ALTER TABLE 语句创建表如果数据库中已经存在一个表,我们可以使用ALTER TABLE 语句来修改表结构,增加新的列。

```sqlALTER TABLE EmployeesADD Email varchar(100);ALTER TABLE EmployeesADD Phone varchar(20);```(3) 使用CREATE TABLE AS SELECT 语句创建表如果我们想根据现有表的数据创建一个新表,可以使用CREATE TABLE AS SELECT 语句。

SqlServer数据库分区分表实例分享(有详细代码和解释)

SqlServer数据库分区分表实例分享(有详细代码和解释)

SqlServer数据库分区分表实例分享(有详细代码和解释)数据库单表数据量太⼤可能会导致数据库的查询速度⼤⼤下降(感觉都是千万级以上的数据表了),可以采取分区分表将⼤表分为⼩表解决(当然这只是其中⼀种⽅法),⽐如数据按⽉、按年分表,最后可以使⽤视图将⼩表重新并为总的虚拟表,其实并不影响上层程序的使⽤(程序也许都不知道分表了)。

主要步骤:1、新建⽂件组,将数据表⽂件保存路径指向相应⽂件组(应将⽂件组和⽂件放⼊不同的磁盘中,甚⾄不同服务器形成分布式数据库,因为数据的读取瓶颈很⼤程度在于磁盘的的读写速度,多个磁盘存放⼀个表可以负载均衡)2、设置分区函数(声明分区的标准)3、设置分区⽅案(即哪些区域使⽤哪个分区函数,形成完整的分区⽅案)4、给新表或现有表设置分区⽅案5、建⽴视图详细步骤(看需求可选):⼀、数据库状态备份和恢复USE master-- 备份BACKUP DATABASE AdventureWorksTO DISK = 'AdventureWorks.bak'WITH FORMAT---- 恢复RESTORE DATABASE AdventureWorksFROM DISK = 'AdventureWorks.bak'WITH REPLACEGO⼆、⽂件组和⽂件操作添加⽂件组USE [master]GOALTER DATABASE ZHH ADD FILEGROUP [⽂件组名称]Go添加⽂件并把其指向指定⽂件组USE master;GOALTER DATABASE 数据库名ADD FILE(NAME=N'⽂件名',FILENAME='存放路径', //如:E:\201109.NDF(精确到⽂件名)⽂件组存放与不同磁盘可以提⾼IO读写效率(多个磁头并发)SIZE=3MB,MAXSIZE=100MB,FILEGROWTH=5MB)TO FILEGROUP [⽂件组名]Go修改⽂件(可选)USE master;GOALTER DATABASE 数据库名MODIFY FILE(NAME = ⽂件名,SIZE = 20MB); //可以修改所有属性,列举即可GO删除⽂件(可选)ALTER DATABASE 数据库名 REMOVE FILE [⽂件组名]三、分区函数和分区⽅案分区函数⽤于规范如何分区的标准,如已哪列进⾏为标准分区、分区的⽅式(按时间、ID等)、分区的具体界限(⼀般来说,界限指标数要⽐分区数少1,⼀⼑则有两段)USE 数据库名GOCREATE PARTITION FUNCTION 分区函数名 (指标列的数据类型) //如:datetime、intAS RANGE RIGHT //右边界切分,默认为LEFTFOR VALUES (划分界限) //如时间划分('2003/01/01', '2004/01/01'),两个时间界限可划分出三个分区GO分区⽅案⽤于将已经建⽴好的分区函数组织成完整的⽅案,为每个分区分配存储位置Use 数据库名gocreate partition scheme 分区⽅案名as partition 分区函数to(⽂件组1,⽂件组2,⽂件组3,...) //注意分区数要与实际分区⼀致go在原有的基础上添加分区(可选)use 数据库名goalter partition scheme ps_OrderDate next used [FG4] //修改分区⽅案ps_OrderDate,定义新新分区使⽤FG4⽂件组alter partition function pf_OrderDate() split range('2005/01/01') //修改分区函数pf_OrderDate,在末尾添加界限'2005/01/01'go为现有表设置分区⽅案(可选)//为AutoBench表的InsertTime列创建新聚集索引,并绑定Scheme_DateTime分区⽅案CREATE CLUSTERED INDEX IX_CreateDate ON AutoBench (InsertTime)ON Scheme_DateTime (InsertTime)注:如原来主键有聚众索引要将其改为⾮聚集索引,才可添加新聚众索引//删除原主键上的聚集索引PK_ProductALTER TABLE Product DROP CONSTRAINT PK_Product//重新创建主键⾮聚集索引PK_ProductALTER TABLE Product ADD CONSTRAINT PK_Product PRIMARY KEY NONCLUSTERED (ProductID ASC)上⾯语句也可直接在索引属性中将聚集改为⾮聚集为新建表设置分区⽅案(可选)//创建表格Order,并设置Scheme_DateTime分区⽅案,指标列为OrderDateCREATE TABLE [Order](OrderID INT IDENTITY(1,1) NOT NULL,UserID INT NOT NULL,TotalAmount DECIMAL(18,2) NULL,OrderDate DATETIME NOT NULL) ON Scheme_DateTime (OrderDate)查询分区数据四、其他操作查询分区数据$partition函数--为任何指定的分区函数返回分区号,⼀组分区列值将映射到该分区号中语法: [ database_name. ] $PARTITION.partition_function_name(expression)参数: database_name 包含分区函数的数据库的名称。

SQLServer高级进阶之分区表创建

SQLServer高级进阶之分区表创建

SQLServer⾼级进阶之分区表创建⼀、分区表概念1.1、什么是分区表?分区表是在SQL Server 2005之后的版本引⼊的特性,这个特性允许把逻辑上的⼀个表在物理上分为很多部分。

换句话说,分区表从物理上看是将⼀个⼤表分成⼏个⼩表,但是从逻辑上看,还是⼀个⼤表。

1.2、分区与分表的区别分区:就是把⼀张表的数据分成N个区块,从逻辑上看只是⼀张表,但底层是由N个物理区块组成的。

分表:就是把⼀张表按⼀定的规则分解成N个具有独⽴存储空间的实体表。

1.3、⽔平分表与垂直分表的区别⽔平分表:将⼀张表中的数据分成多个表且表结构不变。

垂直分表:将⼀张表按照字段分成不同表且表结构发⽣改变。

⼆、分区表优点2.1、使⽤多个⽂件分布数据到多个硬盘中,可以极⼤地提⾼IO性能。

2.2、多个⽂件对于数据略多的数据库来说,备份和恢复都会轻松很多。

三、分区表场景3.1、数据库中某个表的数据量很⼤,在查询数据时会明显感觉到速度很慢,这种情况可以考虑分区表。

3.2、数据是分段的,如以年份为分隔的数据,对于当前的数据经常进⾏增删改查操作,⽽对于往年的数据⼏乎不做操作或只做查询操作,这种情况可以考虑分区表。

3.3、对数据的操作如果只涉及⼀部分数据⽽⾮全部数据,这种情况可以考虑分区表。

3.4、如果⼀张表的数据经常进⾏增删改查操作,⽽不管年份之类的因素,这种情况最好不要考虑分区表。

四、分区表创建4.1、创建步骤创建分表区的步骤分为5步:1)创建数据库⽂件组2)创建数据库⽂件注:应将⽂件组和⽂件存放于不同的硬盘甚⾄不同的服务器中,因为数据的读取瓶颈很⼤程度在于硬盘的读写速度,多个硬盘存储⼀个表可以实现负载均衡。

3)创建分区函数注:声明分区的标准。

4)创建分区⽅案注:即哪些区域使⽤哪个分区函数,形成完整的分区⽅案。

5)创建分区表4.2、创建实操背景:现以表Sales.SalesOrderHeader作为⽰例,此表有2011-2014年的数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如果你的数据库中某一个表中的数据满足以下几个条件,那么你就要考虑创建分区表了。

1、数据库中某个表中的数据很多。

很多是什么概念?一万条?两万条?还是十万条、一百万条?这个,我觉得是仁者见仁、智者见智的问题。

当然数据表中的数据多到查询时明显感觉到数据很慢了,那么,你就可以考虑使用分区表了。

如果非要我说一个数值的话,我认为是1亿条。

2、但是,数据多了并不是创建分区表的惟一条件,哪怕你有一千万条记录,但是这一千万条记录都是常用的记录,那么最好也不要使用分区表,说不定会得不偿失。

只有你的数据是分段的数据,那么才要考虑到是否需要使用分区表。

3、什么叫数据是分段的?这个说法虽然很不专业,但很好理解。

比如说,你的数据是以年为分隔的,对于今年的数据而言,你常进行的操作是添加、修改、删除和查询,而对于往年的数据而言,你几乎不需要操作,或者你的操作往往只限于查询,那么恭喜你,你可以使用分区表。

换名话说,你对数据的操作往往只涉及到一部分数据而不是所有数据的话,那么你就可以考虑什么分区表了。

那么,什么是分区表呢?
简单一点说,分区表就是将一个大表分成若干个小表。

假设,你有一个销售记录表,记录着每个每个商场的销售情况,那么你就可以把这个销售记录表按时间分成几个小表,例如说5个小表吧。

2009年以前的记录使用一个表,2010年的记录使用一个表,2011年的记录使用一个表,2012年的记录使用一个表,2012年以后的记录使用一个表。

那么,你想查询哪个年份的记录,就可以去相对应的表里查询,由于每个表中的记录数少了,查询起来时间自然也会减少。

但将一个大表分成几个小表的处理方式,会给程序员增加编程上的难度。

以添加记录为例,以上5个表是独立的5个表,在不同时间添加记录的时候,程序员要使用不同的SQL 语句,例如在2011年添加记录时,程序员要将记录添加到2011年那个表里;在2012年添加记录时,程序员要将记录添加到2012年的那个表里。

这样,程序员的工作量会增加,出错的可能性也会增加。

使用分区表就可以很好的解决以上问题。

分区表可以从物理上将一个大表分成几个小表,但是从逻辑上来看,还是一个大表。

接着上面的例子,分区表可以将一个销售记录表分成五个物理上的小表,但是对于程序员而言,他所面对的依然是一个大表,无论是2010年添加记录还是2012年添加记录,对于程序员而言是不需要考虑的,他只要将记录插入到销售记录表——这个逻辑中的大表里就行了。

SQL Server会自动地将它放在它应该呆在的那个物理上的小表里。

同样,对于查询而言,程序员也只需要设置好查询条件,OK,SQL Server会自动将去相应的表里查询,不用管太多事了。

这一切是不是很诱人?
的确,那么我们就可以开始动手创建分区表了。

第一、创建分区表的第一步,先创建数据库文件组,但这一步可以省略,因为你可以直接使用PRIMARY文件。

但我个人认为,为了方便管理,还是可以先创建几个文件组,这样可以将不同的小表放在不同的文件组里,既便于理解又可以提高运行速度。

创建文件组的方法很简单,打开SQL Server Management Studio,找到分区表所在数据库,右键单击,在弹出的菜单里选择“属性”。

然后选择“文件组”选项,再单击下面的“添加”按钮,如下图所示:
第二,创建了文件组之后,还要再创建几个数据库文件。

为什么要创建数据库文件,这很好理解,因为分区的小表必须要放在硬盘上,而放在硬盘上的什么地方呢?当然是文件里啦。

再说了,文件组中没有文件,文件组还要来有啥用呢?还是在上图的那个界面,选择“文件”选项,然后添加几个文件。

在添加文件的时候要注意以下几点:
1、不要忘记将不同的文件放在文件组中。

当然一个文件组中也可以包含多个不同的文件。

2、如果可以的话,将不同的文件放在不同的硬盘分区里,最好是放在不同的独立硬盘里。

要知道IQ的速度往往是影响SQL Server运行速度的重要条件之一。

将不同的文件放在不同的硬盘上,可以加快SQL Server的运行速度。

在本例中,为了方便起见,将所有数据库文件都放在了同一个硬盘下,并且每个文件组中只有一个文件。

如下图所示。

第三、创建一个分区函数。

这一步是必须的了,创建分区函数的目的是告诉SQL Server 以什么方式对分区表进行分区。

这一步必须要什么SQL脚本来完成。

以上面的例子,我们要将销售表按时间分成5个小表。

假设划分的时间为:
第1个小表:2010-1-1以前的数据(不包含2010-1-1)。

第2个小表:2010-1-1(包含2010-1-1)到2010-12-31之间的数据。

第3个小表:2011-1-1(包含2011-1-1)到2011-12-31之间的数据。

第4个小表:2012-1-1(包含2012-1-1)到2012-12-31之间的数据。

第5个小表:2013-1-1(包含2013-1-1)之后的数据。

那么分区函数的代码如下所示:
CREATE PARTITION FUNCTION partfunSale (datetime)
AS RANGE RIGHT FOR VALUES ('20100101','20110101','20120101','20130101') 其中:
1、CREATE PARTITION FUNCTION意思是创建一个分区函数。

2、partfunSale为分区函数名称。

3、AS RANGE RIGHT为设置分区范围的方式为Right,也就是右置方式。

4、FOR VALUES ('20100101','20110101','20120101','20130101')为按这几个值来分区。

这里需要说明的一下,在Values中,'20100101'、'20110101'、'20120101'、'20130101',这些都是分区的条件。

“20100101”代表2010年1月1日,在小于这个值的记录,都会分成一个小表中,如表1;而小于或等于'20100101'并且小于'20110101'的值,会放在另一个表中,如表2。

以此类推,到最后,所有大小或等于'20130101'的值会放在另一个表中,如表5。

也许有人会问,为什么值“20100101”会放在表2中,而不是表1中呢?这是由AS RANGE RIGHT中的RIGHT所决定的,RIGHT的意思是将等于这个值的数据放在右边的那个表里,也就是表2中。

如果您的SQL语句中使用的是Left而不是RIGHT,那么就会放在左边的表中,也就是表1中。

第四、创建一个分区方案。

分区方案的作用是将分区函数生成的分区映射到文件组中去。

分区函数的作用是告诉SQL Server,如何将数据进行分区,而分区方案的作用则是告诉SQL Server将已分区的数据放在哪个文件组中。

分区方案的代码如下所示:
CREATE PARTITION SCHEME partschSale
AS PARTITION partfunSale
TO (
Sale2009,
Sale2010,
Sale2011,
Sale2012,
Sale2013)
其中:
1、CREATE PARTITION SCHEME意思是创建一个分区方案。

2、partschSale为分区方案名称。

3、AS PARTITION partfunSale说明该分区方案所使用的数据划分条件(也就是所使用的分区函数)为partfunSale。

4、TO后面的内容是指partfunSale分区函数划分出来的数据对应存放的文件组。

到此为止,分区函数和分区方案就创建完毕了。

创建后的分区函数和分区方案在数据库的“存储”中可以看到,如下图所示:
1.最后,创建分区表,创建方式和创建普遍表类似,如下所示:
CREATE TABLE Sale(
2. [Id] [int] IDENTITY(1,1) NOT NULL,
3. [Name] [varchar](16) NOT NULL,
4. [SaleTime][datetime] NOT NULL
5.) ON partschSale([SaleTime])
其中:
1、CREATE TABLE 意思是创建一个数据表。

2、Sale为数据表名。

3、()中为表中的字段,这里的内容和创建普通数据表没有什么区别,惟一需要注意的是不能再创建聚集索引了。

道理很简单,聚集索引可以将记录在物理上顺序存储的,而分区表是将数据分别存储在不同的表中,这两个概念是冲突的,所以,在创建分区表的时候就不能再创建聚集索引了。

4、ON partschSale()说明使用名为partschSale的分区方案。

5、partschSale()括号中为用于分区条件的字段是SaleTime。

OK,一个物理上是分离的,逻辑上是一体的分区表就创建完毕了。

查看该表的属性,可以看到该表已经属于分区表了。

相关文档
最新文档