Sql Server 分区演练

news/2024/7/4 1:31:47 标签: sql server, scheme, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">  

代码加注释,希望对初学者有用。

USE   [ master ]
GO
if   exists  ( select   *   from  sys.databases  where  name  =   ' Test_1 ' )
drop   database  Test_1
GO
-- 创建新库,要演练分区所以我们会多创建两个文件组Test_A,Test_B,以便在后面的分区方案中使用。
CREATE   DATABASE   [ Test_1 ]   ON    PRIMARY  
( NAME 
=  N ' test_1 ' , FILENAME  =  N ' D:/sqldata/test_1.mdf '  , SIZE  =  10240KB , MAXSIZE  =  UNLIMITED, FILEGROWTH  =  1024KB ),
 FILEGROUP 
[ test_A ]  
( NAME 
=  N ' Test_A ' , FILENAME  =  N ' D:/sqldata/test_A.ndf '  , SIZE  =  1024KB , MAXSIZE  =  UNLIMITED, FILEGROWTH  =  1024KB ),
FILEGROUP 
[ test_B ]  
( NAME 
=  N ' Test_B ' , FILENAME  =  N ' D:/sqldata/test_B.ndf '  , SIZE  =  1024KB , MAXSIZE  =  UNLIMITED, FILEGROWTH  =  1024KB )
 
LOG   ON  
( NAME 
=  N ' Test_log ' , FILENAME  =  N ' D:/sqldata/Test_log.ldf '  , SIZE  =  7616KB , MAXSIZE  =  2048GB , FILEGROWTH  =   10 % )
 COLLATE Chinese_PRC_CI_AS
GO
USE   [ Test_1 ]
GO
-- 若分区函数存在则先drop掉
IF    EXISTS  ( SELECT   *   FROM  sys.partition_functions  WHERE  name  =  N ' test_partition ' )
DROP  PARTITION  FUNCTION   [ test_partition ]
GO
/*创建分区函数给后面的分区方案使用,分区函数很简单就是指定一个范围确定在某个值为什么的时候放在那个分区上*/
-- 新建一个简单的分区函数,该函数以1000为界分两个区
create  partition  function  test_partition( int )
AS
RANGE 
LEFT   FOR   VALUES  ( 1000
go
/*看分区方案是否存在,若存在先drop掉*/
IF    EXISTS  ( SELECT   *   FROM  sys.partition_class="tags" href="/tags/SCHEME.html" title=scheme>schemes  WHERE  name  =  N ' test_class="tags" href="/tags/SCHEME.html" title=scheme>scheme ' )
DROP  PARTITION SCHEME test_class="tags" href="/tags/SCHEME.html" title=scheme>scheme
GO
-- 创建分区方案,分区方案需要指定一个分区函数,并指定在分区函数中分的区需要放在哪一个文件组上
create  partition class="tags" href="/tags/SCHEME.html" title=scheme>scheme test_class="tags" href="/tags/SCHEME.html" title=scheme>scheme 
AS  
PARTITION 
[ test_partition ]   TO  (test_A,test_B)
GO
-- 创建分区表
if   object_id ( ' student ' , ' U ' is   not   null
drop   table  student;
go
create   table  student
(
    id 
int   identity ( 1 , 1 not   null ,
    name 
varchar ( 10 not   null ,
    class 
int   not   null ,
    grade 
int
on  test_class="tags" href="/tags/SCHEME.html" title=scheme>scheme(class -- 在此处指定该表要使用的分区方案,并将指定分区依据列
go
-- 随便插入几条数据
insert   into  student  values  ( ' AQU ' , 10 , 100 );  --  这条数据在A分区上
insert   into  student  values  ( ' AQU_边界 ' , 1000 , 89 );  --  这边数据也在A分区上是个边界,因为我们上面在函数中指定的是RANGE LEFT,所以1000在A分区上
insert   into  student  values  ( ' BQU ' , 1001 , 90 );  --  这一条肯定是在B分区上了。

go
-- 最后看看结果。$partition.分区函数(分区列)可以返回某一行所在的分区序号
select   * ,分区序号  =  $partition.test_partition(class from  student
GO

http://www.niftyadmin.cn/n/1425542.html

相关文章

二层网络,三层网络

在企业的网络结构选择中,有二层网络和三层网络结构两种选择。 在这里的二层、三层是按照逻辑拓扑结构进行的分类,并不是说ISO七层模型中的数据链路层和网络层,而是指核心层,汇聚层和接入层,这三层都部署的就是三层网络…

T-SQL语句 运算符

T-SQL语言主要由以下几部分组成: DML(Data Manipulation Lauguage,数据操纵语言):用来查询,插入,删除和修改数据库中的数据,如select,insert,update&#xf…

VLAN tag

这四个字节的802.1Q标签头包含了2个字节的标签协议标识(TPID)和2个字节的标签控制信息(TCI)。 TPID(Tag Protocol Identifier)是IEEE定义的新的类型,表明这是一个加了802.1Q标签的帧。TPID包含…

海量数据表的处理方法

分区的方式有水平分区和垂直分区两中。 前者不拆分表结构,只拆分数据;后者拆分表结构,即将某些字段划到其他表中。 当我查询海量数据表时,访问速度特别的慢。朋友建议我两种方案:1、采用每天建个表的机制&#xff0…

通过一个实例来理解路由与路由表

应用背景 下图共有两个不同的网段分别是NetworkA与NetworkB,这两个网段是通过一个路由器(Server A)来进行数据传递,那么当PC01这台主机想要传送数据到PC11时,它的IP数据包该如何传输? 应用分析 NetworkA&…

IP地址的ABC类划分

简单的说: A类网络的IP地址范围为:1.0.0.1-126.255.255.254; B类网络的IP地址范围为:128.1.0.1-191.255.255.254; C类网络的IP地址范围为:192.0.1.1-223.255.255…

struts中用过滤器(Filter)解决数据库中文的问题

struts中用过滤器&#xff08;Filter&#xff09;解决数据库中文的问题 在web.xml中加上 <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>com.huahang.tj.struts.filters.SetCharacterEncodingFilter</filter-c…

Shell截取字符串方法总结

Linux 的字符串截取很有用。有八种方法。 假设有变量 varhttp://www.aaa.com/123.htm. 1. # 号截取&#xff0c;删除左边字符&#xff0c;保留右边字符。 echo ${var#*//} 其中 var 是变量名&#xff0c;# 号是运算符&#xff0c;*// 表示从左边开始删除第一个 // 号及左边…