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

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

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

-- 演示:陈希章

-- 如何创建分区函数

-- 如何创建分区架构

-- 如何创建分区表

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

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中为表分区提供了相关的操作

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

最后生成的脚本是这样的

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这些操作。也可以查看数据

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

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

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

使用SQL Server 2008提供的表分区向导相关推荐

  1. SQL SERVER 2008不能修改表的解决方法(增加字段、修改字段名)(未解决)

    SQL SERVER 2008不能修改表的解决方法(增加字段.修改字段名)(未解决) 参考文章: (1)SQL SERVER 2008不能修改表的解决方法(增加字段.修改字段名)(未解决) (2)ht ...

  2. 如何在SQL Server中自动进行表分区

    In this article, we will demonstrate specific ways to automate table partitioning in SQL Server. Thi ...

  3. SQL Server中的数据库表分区

    什么是数据库表分区? (What is a database table partitioning?) Partitioning is the database process where very ...

  4. SQL Server 2008不能修改表的解决方法

    新装的SQL SERVER 2008,打开原来SQL SERVER 2008中建立的表,现在想增加一些字段,在保存时提示错误,无法保存. 刚开始以为是SQL SERVER 2008与2005的不兼容, ...

  5. sql server 2008学习3 表组织和索引组织

    表组织 表包含在一个或多个分区中,每个分区在一个堆或一个聚集索引结构包含数据行.堆页或聚集索引页在一个或多个分配单元中进行管理,具体的分配单元数取决于数据行中的列类型. 聚集表.堆和索引 SQL Se ...

  6. 在SQL Server 2008中删除表中的记录时出错,该如何解决

    我是刚开始学习用C#连接SQL Server数据库,在练习的过程中,不小心在表中添加了几条相同的记录,想要删除时却删除不掉,会出现如下错误: 解决的办法很简单,在SQL Server2008中的SMS ...

  7. Win 2008 R2安装SQL Server 2008“性能计数器注册表配置单元一致性”失败的解决办法...

    今天在惠普服务器上安装数据库2008时,在进行数据库安装检测时总是有一点通不过,提示"性能计数器注册表配置单元一致性失败".以前在其他的服务器上安装都没有碰到过这个问题.开始以为系 ...

  8. sql server 2008手工修改表结构,表不能保存的问题与解决

    工具->选项->设计者(designers)->阻止保存要求重新创建表的修改(Prevent saving changes that require table re-creatio ...

  9. SQL Server 2008获取一个表的字段,类型,长度,是否主键,是否为空,注释等信息...

    SELECT [表名]=case when a.colorder=1 then d.name else '' end, [表说明]=case when a.colorder=1 then isnull ...

最新文章

  1. 如何用Python实现多任务版的udp聊天器
  2. java五大原则_Java成长第五集--面向对象设计的五大原则
  3. java display属性_JavaScript中的style.display属性操作
  4. 《深度学习入门》实现三层神经网络前向传播
  5. usb 1-5.2: device not accepting address 4, error -110问题解决方案
  6. 积跬步-java任职要求
  7. java调用siri 语言_如何更改Siri的声音,口音,性别和语言
  8. 印刷体是什么意思_家长晒出4年级小学霸课前笔记,字迹堪比“印刷体”,老师都羡慕...
  9. python manager模块_Python 并发模块
  10. python csv修改文件_Python实例:对CSV文件的操作
  11. powershell自动化操作AD域、Exchange邮箱系列(7)—get-aduser/get-user获取信息 取值方法及区别
  12. android studio connot resolve
  13. 技术和技术管理人员评价标准
  14. java开发面试项目经验
  15. 快速排序之螺钉螺母匹配
  16. 计算机桌面的图标都可以删除吗,桌面上图标删除不了怎么回事,电脑桌面的图标删除不了...
  17. 移动端可以查看的设计APP,推荐给大家
  18. Python基础:68 个 Python 内置函数详解
  19. 使用python抓取并分析数据—链家网(requests+BeautifulSoup)(转)
  20. 58到家数据库30条军规解读

热门文章

  1. Source Insight经典教程
  2. vs 窗体连接mysql_vs2008 c#开发windows窗体程序,怎么连接数据库?
  3. ajax post提交数据_详解Ajax异步加载
  4. 搜索重复代码_LeetCode专题——详解搜索算法中的搜索策略和剪枝
  5. GPU Gems2 - 4 分段缓冲(Segment Buffering)
  6. Python清屏小结
  7. matlab 多核并行编程
  8. Linux 和 Vim 常用命令整理
  9. Mac 下查看网络端口占用情况
  10. [BZOJ2326] [HNOI2011] 数学作业 (矩阵乘法)