ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> SqlServer >> SQL Server 2005 分区表实践——分区切换

SQL Server 2005 分区表实践——分区切换(1/3)

来源:网络整理     时间:2016-03-29     关键词:

本篇文章主要介绍了"SQL Server 2005 分区表实践——分区切换",主要涉及到方面的内容,对于SqlServer感兴趣的同学可以参考一下: 本文演示了 SQL Server 2005 分区表分区切换的三种形式: 1. 切换分区表的一个分区到普通数据表中:Partition to Table; 2. ...

本文演示了 SQL Server 2005 分区表分区切换的三种形式: 
1. 切换分区表的一个分区到普通数据表中:Partition to Table; 
2. 切换普通表数据到分区表的一个分区中:Table to Partition; 
3. 切换分区表的分区到另一分区表:Partition to Partition。
并指出了在分区表分区切换过程中的注意事项。

-- 创建分区函数
create partition function PF_Orders_OrderDateRange(datetime)
as
range right for values (
'1997-01-01',
'1998-01-01',
'1999-01-01'
)
go

-- 创建分区方案
create partition scheme PS_Orders
as
partition PF_Orders_OrderDateRange
to ([primary], [primary], [primary], [primary])
go

-- 创建分区表
create table dbo.Orders
(
   OrderID     int          not null
  ,CustomerID  varchar(10)  not null
  ,EmployeeID  int          not null
  ,OrderDate   datetime     not null
)
on PS_Orders(OrderDate)
go

-- 创建聚集分区索引
create clustered index IXC_Orders_OrderDate on dbo.Orders(OrderDate)
go

-- 为分区表设置主键
alter table dbo.Orders add constraint PK_Orders 
   primary key (OrderID, CustomerID, OrderDate)
go

-- 导入数据到分区表
insert into dbo.Orders
select OrderID, CustomerID, EmployeeID, OrderDate
  from dbo.Orders_From_SQL2000_Northwind   --(注:数据来源于 SQL Server 2000 示例数据库)
go

-- 查看分区表每个分区的数据分布情况
select partition = $partition.PF_Orders_OrderDateRange(OrderDate)
      ,rows      = count(*)
      ,minval    = min(OrderDate)
      ,maxval    = max(OrderDate)
  from dbo.Orders
 group by $partition.PF_Orders_OrderDateRange(OrderDate)
 order by partition
go
一、切换分区表的一个分区到普通数据表中:Partition to Table

首先建立普通数据表 Orders_1998,该表用来存放订单日期为 1998 年的所有数据。

create table dbo.Orders_1998
(
   OrderID     int          not null
  ,CustomerID  varchar(10)  not null
  ,EmployeeID  int          not null
  ,OrderDate   datetime     not null
) on [primary]
go

create clustered index IXC_Orders1998_OrderDate on dbo.Orders_1998(OrderDate)
go

alter table dbo.Orders_1998 add constraint PK_Orders_1998
   primary key nonclustered (OrderID, CustomerID, OrderDate)
go

开始切换分区表 Orders 第三个分区的数据(1998年的数据)到普通表 Orders_1998

相关图片

相关文章