MSSQL2008分区表

简介:

概念就不多说了,网上大把.  

--分区函数的作用是告诉SQL Server,如何将数据进行分区,例如按时间,按年龄,按省.

--而分区方案的作用则是告诉SQL Server,将已分区的数据放在哪个文件组中. 多个硬盘上分开选择的文件组更好. 

一,用语句

创建,分区方案:

 
  1. CREATE PARTITION SCHEME YearCustomerFollow AS PARTITION  
  2. YearCustomerFollowFunction TO([PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY],[PRIMARY]) 

创建,分区函数:

 
  1. CREATE PARTITION FUNCTION YearCustomerFollowFunction(datetime) 
  2.  AS RANGE RIGHT FOR VALUES('20100101','20110101','20120101','20130101')  

删除一个分区:

 
  1. ALTER PARTITION FUNCTION YearCustomerFollowFunction() MERGE RANGE ('20100101')   

添加一个分区:

 
  1. ALTER PARTITION SCHEME YearCustomerFollow NEXT USED [PRIMARY]     -- 分区方案   
  2. ALTER PARTITION FUNCTION YearCustomerFollowFunction() SPLIT RANGE ('20090101')  -- 分界值  

创建分区:(这里的语句可以用向导生成更方便)

 
  1. USE [SQL_ZZW] 
  2. GO 
  3. BEGIN TRANSACTION 
  4. CREATE CLUSTERED INDEX [ClusteredIndex_on_YearCustomerFollow_01] ON [dbo].[ZZW_test]  
  5.     [birthyday] 
  6. )WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFFON [YearCustomerFollow]([birthyday]) 
  7.  
  8.  
  9. DROP INDEX [ClusteredIndex_on_YearCustomerFollow_01] ON [dbo].[ZZW_test] WITH ( ONLINE = OFF ) 

 查询分区表行数.

 
  1. select $PARTITION.YearCustomerFollowFunction(birthyday) as 分区编号,count(id) as 记录数  
  2. from zzw_test  
  3. group by $PARTITION.YearCustomerFollowFunction(birthyday)   

二,用向导

1,在要修改的表上右键->存储->创建分区.

2,选择分区列.

3,创建分区函数或选择以后的分区函数.

4,创建分区方案或选择现有分区方案.

5,映射分区,先设置边界.

6,可以看到边界值都一下子已经设置好了.

7,创建完成.

查看:表右键->存储-管理压缩.可以看到各分区的行数,空间.

在控制台库->存储下可以直接看到刚创建的分区方案和分区函数.


本文转自 idyllic_cyty 51CTO博客,原文链接:http://blog.51cto.com/aizzw/1160531



相关文章
|
7月前
|
存储 关系型数据库 MySQL
MySQL分区表详解
在我们日常处理海量数据的过程中,如何有效管理和优化数据库一直是一个既重要又具有挑战性的问题
58 0
|
存储 SQL 算法
炸锅了,MySQL表500W行,居然有人不做分区?
炸锅了,MySQL表500W行,居然有人不做分区?
719 0
炸锅了,MySQL表500W行,居然有人不做分区?
|
存储 关系型数据库 MySQL
Mysql分区表使用
一、什么是分区表 分区表就是按一定规则将一张表分割成多个部分,达到和物理分表同样的效果,但操作起来更 简单,不同于物理分表那样使用时还需要指定使用的数据表。对于使用者来说和操作普通表无差别。 二、优势与限制 1、优势 分区可以在一个表中存储比单个磁盘或文件系统分区上的数据更多的数据,因为我们可 以将
244 0
|
关系型数据库 数据库 PostgreSQL
PostgreSQL分区表(Table Partitioning)应用
一、简介   在数据库日渐庞大的今天,为了方便对数据库数据的管理,比如按时间,按地区去统计一些数据时,基数过于庞大,多有不便。
1672 0
|
SQL 弹性计算 Oracle
PPAS(enterprisedb)(PG Oracle兼容版) 10以及以前版本分区表的使用,分区表索引的创建
标签 PostgreSQL , enterprisedb , ppas , oracle 背景 PPAS 10以及以前的版本,对于Oracle分区表的使用,以及如何创建分区表的索引。 10 以及以前的版本,仅支持range, list分区。11开始支持HASH分区。 Oracle分区表语法 https://docs.oracle.com/cd/E18283_01/server.11
246 0
|
关系型数据库 MySQL
MySQL如何drop一个上百GB的大表
备注:来自知数堂老师的总结,这里搬到本博客主要是为了备忘。 一个无业务的大表,在系统不繁忙的情况下,如何尽可能的占用较少的磁盘IO,并快速的drop掉?  建议方案: 0. 一定要提前做好备份啊 1.
1892 0
|
SQL 关系型数据库 数据库
|
存储 关系型数据库 MySQL
MySQL分区表使用总结
我们经常遇到一张表里面保存了上亿甚至过十亿的记录,这些表里面保存了大量的历史记录。 对于这些历史数据的清理是一个非常头疼事情,特定场景下分区表可以很好的解决,但分区又有哪些坑或注意事项呢?
6776 0
|
关系型数据库 PostgreSQL
|
MySQL 关系型数据库