使用SQL Server 2008提供的表分区向导

表分区(Partition Table)是自从SQL Server 2005就开始提供的功能,解决的问题是大型表的存储和查询。

image image image image

我们之前大致的语法是这样的

-- =========================

-- 演示:陈希章

-- 如何创建分区函数

-- 如何创建分区架构

-- 如何创建分区表

--=========================

alter database adventureWorks add filegroup [fg1]

go

alter database adventureWorks add filegroup [fg2]

go

alter database adventureWorks add filegroup [fg3]

go

alter database adventureWorks

add file

(name='fg1',

filename='c:\fg1.ndf',

size=5mb)

to filegroup [fg1]

go

alter database adventureWorks

add file

(name='fg2',

filename='d:\fg2.ndf',

size=5mb)

to filegroup [fg2]

go

alter database adventureWorks

add file

(name='fg3',

filename='e:\fg3.ndf',

size=5mb)

to filegroup [fg3]

go

use adventureWorks

go

Create partition function emailPF(nvarchar(50)) as range right for values ('G','N')--创建分区函数

go

Create partition scheme emailPS as partition emailPF to (fg1,fg2,fg3)--创建分区方案

go

Create table customermail (custid int, email nvarchar(50)) on emailPS(email)--创建分区表

Go

 

 

为了简化操作,SQL Server 2008中为表分区提供了相关的操作

image

image

image

image

image

image

这个向导有些诡异,居然希望表里面已经有数据。(费解)

image 

image

最后生成的脚本是这样的

USE [demo]
GO
BEGIN TRANSACTION
CREATE PARTITION FUNCTION [ordersfunction](date) AS RANGE LEFT FOR VALUES (N'2008-01-01', N'2008-02-01', N'2008-03-01')

CREATE PARTITION SCHEME [ordersscheme] AS PARTITION [ordersfunction] TO ([PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY])

CREATE CLUSTERED INDEX [ClusteredIndex_on_ordersscheme_633765890752500000] ON [dbo].[Orders]
(
    [OrderDate]
)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [ordersscheme]([OrderDate])

DROP INDEX [ClusteredIndex_on_ordersscheme_633765890752500000] ON [dbo].[Orders] WITH ( ONLINE = OFF )

COMMIT TRANSACTION

这里要注意一个语法,因为现在表已经存在了,那么就不能再通过CREATE TABLE的方式来创建分区表了,而是通过创建一个聚集索引的方式。但又把它删除掉。

但是,如果表上面已经有一个聚集索引呢?肯定会出错,因为一个表只能有一个聚集索引。那么该怎么办呢?

我们发现向导会这样做,先把原先的聚集索引改为非聚聚的。这很有点意思嘛

ALTER TABLE [dbo].[Orders] ADD  CONSTRAINT [PK_Orders] PRIMARY KEY NONCLUSTERED
(
    [OrderId] 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 [PRIMARY]

 

除了提供了创建分区的向导之外,还有一个管理分区的向导,主要是可以做SWITCH,MERGE,SPLIT这些操作。也可以查看数据

image

image

image 

 

除了这些图形化工具的支持之外,SQL Server 2008的分区表还有不少增强,诸如性能等等方面

http://technet.microsoft.com/zh-cn/library/ms345599.aspx

转载于:https://www.cnblogs.com/chenxizhang/archive/2009/04/29/1445834.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

唤醒控件曾经拥有的能力

为什么80%的码农都做不了架构师?>>> 控件的祖先 TControl 有很多功能, 但它的有些子孙确丧失了很多(为了专用). 譬如 TBevel 就没有把一些常规的事件继承下来, 那些没有被继承的功能一般都隐藏在 protected 区, 如果重新继承是可以使用的. 这里尝试了另…

Android 面向切面编程-aspjectj应用

先附上自己基于aspject封装的aop 插件 1.为什么要用切面 随着业务越来越复杂,项目中的模块可能越来越多, 面向切面可以减少模块间的耦合,提高模块的复用率 2.aspjectj语法 android aop框架 有好几种,不过aspjectj应该算最成熟了&…

c语言掌上通,计算机二级C语言掌上通在哪下载安装?计算机掌上通好用吗?

计算机二级C语言掌上通在哪下载安装?计算机二级C语言掌上通好用吗?相信很多想要考计算机二级C语言的学生都在努力的复习背题库,而现在只要使用计算机二级C语言掌上通就能够随时随地刷题了。一、计算机二级C语言掌上通怎么下载1、滑动手机&…

[原]RHCS集群的服务切换测试札记

估计使用Red Hat或者CentOS做HA集群的朋友多数都会选择RedHat Cluster Suite(RHCS)这个套件来做吧。本篇主要记录构建及测试时候的情况。 poweroff 和 reboot 这种常规操作的服务切换取决于 recovery"relocate" 这个参数,在图形化界…

理解 Delphi 的类(十) - 深入方法[17] - 提前声明

为什么80%的码农都做不了架构师?>>> //要点17: 如果前面的方法要调用后面的方法, 后面的方法需要提前声明 function MyFunB(x: Integer): Integer; forward; {使用 forward 指示字提前声明}function MyFunA(x: Integer): Integer; beginResult : MyFunB…

本地仓库推送到远程仓库:fatal: refusing to merge unrelated histories

最近,在操作git的时候,遇到各种问题,下面总结一下。 最开始,我不是先把远程仓库拉取到本地 ,而是直接在本地先创建一个仓库,再git remote add添加远程仓库。 当然,gitee官方还是有操作指南&…

c语言全段字符的类别,言语理解规律整理d0c.doc

言语理解规律整理d0cAUTOTEXT "第 X 页 共 Y 页" \* MERGEFORMAT 第 PAGE 14 页 共 NUMPAGES 14 页言语理解规律整理言语理解之广义主旨题 :  主要的提问方式有:“主要说明、主要意思、主要谈论、主要讲述、核心意思、主要表达、主要告诉我们”这些表达…

小小闹钟wpf版

以前做过一个vc版的,最近看了一下wpf,于是有在这个模式下重写了程序,算是一个练习,工程下载地址:http://cid-fbe22b5b41948219.skydrive.live.com/self.aspx/.Documents/clock.rar转载于:https://www.cnblogs.com/hxf8…

C#开发微信门户及应用(18)-微信企业号的通讯录管理开发之成员管理

在上篇随笔《C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理》介绍了通讯录的部门的相关操作管理,通讯录管理包括部门管理、成员管理、标签管理三个部分,本篇主要介绍成员的管理操作,包括创建、删除、更新、获取、获取部门成…

IDEA 运行spingboot时出现Process finished with exit code -1073741819 (0xC0000005)

经过多方查证,问题最终定位在金山词霸2016上,如果开启了金山词霸的取词和划意功能,就会出现此错误,估计是冲突吧。 解决办法:关掉金山词霸,或者把金山词霸的取词和划意功能关掉。经过尝试,发现只…

转载--【笔记】Asp.Net构架(Http请求处理流程)

转载--【笔记】Asp.Net构架(Http请求处理流程) 最近接触了一些Asp.Net开发人员,在聊到技术的时候,发现很多的Asp.Net开发人员都不明白在ASP.NET中一个页面请求的处理流程,今天自己在反思的过程中,发现我自己对这个也是一知半解&am…

语法分析器c语言 递归子程序,RecursiveSubroutine

RecursiveSubroutine介绍编译原理语法分析——递归下降子程序类,C实现。实验说明一、实验目标分别采用自顶向下和自底向上两种语法分析方法,编制一个语法分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析实验内容。二、实验…

SSL/TLS协议运行机制的概述

互联网的通信安全,建立在SSL/TLS协议之上。 本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的…

margin塌陷

一:什么是margin塌陷 在标准文档流中,竖直方向的margin会出现叠加现象(水平方向不会塌陷),两个margin紧挨着,中间没有border或者paddingmargin直接接触,就产生了合并表现为较大的margin会覆盖掉…

c语言幼儿园管理系统,【资源学习】c语言程序代码,登录幼儿园200个小朋友的数据...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼编写程序,登录幼儿园200个小朋友的数据:姓名、性别、年龄、身高、体重、出生日期,分别按年龄排序后输出。要求:(1)登录数据用函数input()(2)按身高排序用函数sort()(3)输出排序结果用…

[转载]EXT核心API详解(一)-Ext

Ext类addBehaviors( Object obj ) : void对选择的元素 应用事件侦听器,事件名以附加在结尾,例如addBehaviors({// idfoo下所有的a标签加入click事件#foo aclick : function(e, t){// do something},// 用,分隔多个选择器#foo a, #bar span.some-classmouseover : function(){//…

Redis链表实现

链表在 Redis 中的应用非常广泛, 比如列表键的底层实现之一就是链表: 当一个列表键包含了数量比较多的元素, 又或者列表中包含的元素都是比较长的字符串时, Redis 就会使用链表作为列表键的底层实现。除了链表键之外, …

获取当前日期0点及23点59的时间戳

1.获取今天0点时间戳: const start new Date(new Date(new Date().toLocaleDateString()).getTime()); //如果不是当天换成你想获取0点的时间即可。 console.log(start); 2.获取今天23:59:59点时间戳: const start new Date(new Date(new Date(…

android 6.0 api 管理,Android 6.0(API23)权限申请问题

1.在API23以上,不止要在AndroidManifest.xml里面添加权限2.还要在JAVA代码中请求权限:// Storage Permissionsprivate static final int REQUEST_EXTERNAL_STORAGE 1;private static String[] PERMISSIONS_STORAGE {Manifest.permission.READ_EXTERNAL…

ecos内核概览--bakayi译

http://blog.csdn.net/wangzaiwei2006/article/details/6453423