SQL Server 创建表分区

原文:SQL Server 创建表分区

先准备测试表

CREATE TABLE [dbo].[Employee] (
    EmployeeNo INT IDENTITY(1,1) PRIMARY KEY,
    EmployeeName NVARCHAR(50) NULL
);

插入一些数据

INSERT Employee DEFAULT VALUES;
GO 10000

UPDATE Employee set EmployeeName = 'Employee ' + CONVERT(VARCHAR, EmployeeNo) 

创建文件组

创建文件(为了性能,可以设定文件Path分布在不同的磁盘分区上)

创建分区准备

选择分区列

创建分区函数

创建分区框架

定义边界值,分区,因为有5个边界值,所以需6个分区

产生的脚本文件(换句话说上面的步骤等同于下面的语句)

USE [TestingDB]
GO
BEGIN TRANSACTION
CREATE PARTITION FUNCTION [EmpFunction](int) AS RANGE RIGHT FOR VALUES (N'2000', N'4000', N'6000', N'8000', N'10000')

CREATE PARTITION SCHEME [FunScheme] AS PARTITION [EmpFunction] TO ([FileGroup1], [FileGroup2], [FileGroup3], [FileGroup4], [FileGroup5], [PRIMARY])

ALTER TABLE [dbo].[Employee] DROP CONSTRAINT [PK__Employee__7AD0F1B633D4B598]

ALTER TABLE [dbo].[Employee] ADD PRIMARY KEY CLUSTERED
(
    [EmployeeNo] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [FunScheme]([EmployeeNo])

COMMIT TRANSACTION

执行上面的SQL语句

其中语句ON [FunScheme]([EmployeeNo])是关键,表明了表Employee依赖分区框架FunScheme来进行分区,分区的列为EmployeeNo

而分区框架有依赖于分区函数,即分区表依赖分区框架,分区框架又依赖于分区函数

查看表分区结果

时间: 2024-09-19 08:55:59

SQL Server 创建表分区的相关文章

SQL Server创建一个分区数据仓库事实数据表

在本练习中,您将创建一个分区http://www.aliyun.com/zixun/aggregation/8302.html">数据仓库事实6184.html">数据表.非常大的表经常需要跨几个磁盘卷存储数据.SQL Server 表无法放置在特定文件中.但是,文件组可以放置在文件中,而表可以分配给文件组. 这样您就可以控制 SQL Server 中非常大的表中的数据的存储.而且,如果表跨几个文件组,定义哪些数据放置在哪个文件组中会非常有用.分区函数通过基于特定列中的值沿

SQL Server创建数据库和数据表的相关约束实现方法_MsSql

本文分析了SQL Server创建数据库和数据表的相关约束实现方法.分享给大家供大家参考,具体如下: 创建约束语法如下: CREATE DATABASE [test] ON (NAME=N'test',FILENAME=N'd:\SQL2kt_Data\test.mdf',SIZE=3mb,MAXSIZE=UNLIMITED,FILEGROWTH=1MB) LOG ON (NAME=N'test_log',FILENAME=N'd:\SQL2kt_Data\test_log.ldf',SIZE=

SQL Server创建数据库和数据表的相关约束实现方法

本文分析了SQL Server创建数据库和数据表的相关约束实现方法.分享给大家供大家参考,具体如下: 创建约束语法如下: CREATE DATABASE [test] ON (NAME=N'test',FILENAME=N'd:\SQL2kt_Data\test.mdf',SIZE=3mb,MAXSIZE=UNLIMITED,FILEGROWTH=1MB) LOG ON (NAME=N'test_log',FILENAME=N'd:\SQL2kt_Data\test_log.ldf',SIZE=

SQL Server 动态生成分区脚本

一.前言 前段时间使用表分区比较多,虽然已经写了SQL Server 合并(删除)分区解惑.SQL Server 2005 分区模板与实例,但是在实践中一直感觉修改SQL脚本的时间比较多,一直想抽个时间来把分区脚本进行动态化,今天终于付之于行动了.需要说明的一点,下面的脚本并不能满足所有情况,用户可以根据自己的需要进行相应的调整,应该可以满足你的需求的. 在SQL Server 2005中只能通过SQL脚本来创建表分区,而在SQL Server 2008的SSMS中已经提供了操作界面进行表分区,

sql server建表时设置ID字段自增的简单方法

打开要设置的数据库表,点击要设置的字段,比如id,这时下方会出现id的列属性表 列属性中,通过设置"标识规范"的属性可以设置字段自增,从下图上看,"是标识"的值是否,说明id还不是自增字段 能够设置ID字段自增的字段必须是可自增的,比如int,bigint类型,而varchar类型是不可自增的.比如查看name的列属性时,可以看到"是标识"是否且不可更改. 点击"标识规范",展开后,点击"是标识"会出现下拉

数据库 sql语言-SQL Server创建存储过程,计算每个同学的平均成绩并标记“优秀学生”

问题描述 SQL Server创建存储过程,计算每个同学的平均成绩并标记"优秀学生" 如题:请用命令行创建存储过程,计算每个同学的平均成绩,写入S_AVG表,平均成绩大于85的学生,Flag标记为"优秀学生",平均成绩低于60的的学生,Flag标记为"延迟毕业",其他学生Flag标记为"常规学生". 能查到的有关例子太少了,自学不成功,求大神解答-- 解决方案 分步做 1.计算每个同学的平均成绩,写入S_AVG表 insert

SQL Server系统表sysobjects介绍与使用

原文:SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工. 这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表 在数据库内创建的每个对象(约

SQL Server创建复合索引时,复合索引列顺序对查询的性能影响

原文:SQL Server创建复合索引时,复合索引列顺序对查询的性能影响    说说复合索引 写索引的博客太多了,一直不想动手写,有一下两个原因: 一是觉得有炒剩饭的嫌疑,有兄弟曾说:索引吗,只要在查询条件上建索引就行了,真的可以这么暴力吗? 二来觉得,索引是个非常大的话题,很难概括出所有的情况,你不整出点新意来,倒是有抄袭照搬的嫌疑 既然写了,就写一点稍微不一样的东西出来, 好了,废话打住,开搞   搭建测试环境: 创建一张表,模拟实际业务中的一个表,往里面填入数据, 时间字段上,相对按照时间

sql server 创建临时表的使用说明_MsSql

临时表产生:A: SELECT INTO和B:CREATE TABLE + INSERT INTO 1. A 要比B 快很多.但是A会锁定tempdb的SYSOBJECTS.SYSINDEXES.SYSCOLUMNS表,在多用户并发的时候,容易产生阻塞其他的进程. 2. 在并发系统中是用B. 大数量的单个语句中,使用A. 创建临时表的方法:        方法一:      create table #临时表名(字段1 约束条件,                       字段2 约束条件,