惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - Niko

SQLServer使用注意规范 . windows2008 导出Excel 配置。 Web.config 数据库连接字符串加密 NHibernate.AdoNet.TooManyRowsAffectedException: Unexpected row count: 19; expected: 1 安装sql server 2008 注意事项 - Niko 添加 程序映射 链接服务器"(null)"的 OLE DB 访问接口 Microsoft Office Excel 不能访问文件 Win2008 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败解决方法 excel 汇入, SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问 - Niko 卸载 vs 2008 ASP.net 打印页面内容 - Niko - 博客园 asp.net 异步调用 Asp.net2.0 defaultButton 不支持firefox解决方法 Rational Rose 安装破解, 和常见问题解决 Gridview 选中checkbox 时, 展开子节点, 同时选中父节点 - Niko Grid view 级联选择 - Niko Database diagram support objects cannot be installed because this database does not have a valid owner. ASP.NET动态生成控件问题。 - Niko - 博客园
MSSQL2005 建立分区
Niko · 2009-09-01 · via 博客园 - Niko

--1.创建数据库

USE[master]

IF EXISTS(SELECT * FROM [master].[dbo].sysdatabases where name = N'TEST')

DROP DATABASE [TEST]

CREATE DATABASE [TEST]

--2. 创建分组文件(由于表分区使用使用新的体系结构,使用文件组来进行表分区)
ALTER DATABASE [TEST] ADD FILEGROUP YEARFG1;
ALTER DATABASE [TEST] ADD FILEGROUP YEARFG2;
ALTER DATABASE [TEST] ADD FILEGROUP YEARFG3;
ALTER DATABASE [TEST] ADD FILEGROUP YEARFG4;
ALTER DATABASE [TEST] ADD FILEGROUP YEARFG5;

--3. 创建分组文件的物理存储文件
ALTER DATABASE [TEST] ADD FILE(NAME='YEARF1', FILENAME='D:\SoftWare\Microsoft SQL Server\MSSQL.1\MSSQL\Partition\TASK1.NDF') TO FILEGROUP YEARFG1;
ALTER DATABASE [TEST] ADD FILE(NAME='YEARF2', FILENAME='D:\SoftWare\Microsoft SQL Server\MSSQL.1\MSSQL\Partition\TASK2.NDF') TO FILEGROUP YEARFG2;
ALTER DATABASE [TEST] ADD FILE(NAME='YEARF3', FILENAME='D:\SoftWare\Microsoft SQL Server\MSSQL.1\MSSQL\Partition\TASK3.NDF') TO FILEGROUP YEARFG3;
ALTER DATABASE [TEST] ADD FILE(NAME='YEARF4', FILENAME='D:\SoftWare\Microsoft SQL Server\MSSQL.1\MSSQL\Partition\TASK4.NDF') TO FILEGROUP YEARFG4;
ALTER DATABASE [TEST] ADD FILE(NAME='YEARF5', FILENAME='D:\SoftWare\Microsoft SQL Server\MSSQL.1\MSSQL\Partition\TASK5.NDF') TO FILEGROUP YEARFG5;

--4.创建分区函数
USE [TEST]
GO

CREATE PARTITION FUNCTION YEARPF
AS
RANGE LEFT FOR VARUES('01/01/2009',
      '/01/01/2010',
      '01/01/2011',
      '/01/01/2012',
      '/01/01/2013')
--5. 创建分区架构
 
CREATE PARTITION SCHEME YEARPS
AS PARTITION YEARPF TO (YEARFG1, YEARFG2, YEARFG3,YEARFG4, YEARFG5)

--5. 创建表
CREATE TABLE T_JOB
{ID INT NOT NULL IDENTITY(1,1),
ADDEDTIME DATETIME NOT NULL
) ON YEARPS(ADDEDTIME)

-- 现在我们可以看一下我们刚才插入的行都分布在哪个Partition

SELECT *, $PARTITION.YEARPF(DUEDATE) FROM PARTITIONEDORDERS

--我们可以看一下我们现在PARTITIONEDORDERS表的数据存储在哪此partition中,以及在这些分区中数据量的分布

SELECT * FROM SYS.PARTITIONS WHERE OBJECT_ID = OBJECT_ID('PARTITIONEDORDERS')

--

--现在我们设想一下,如果我们随着时间的流逝,现在已经到了2005年,按照我们先前的设定,我们想再想入一个分区,这时是不是重新创建表分区架构然后重新把数据导放到新的分区架构呢,答案是完全不用。下面我们就看如果新加一个分区。

--更改分区架构定义语言,让下一个分区使用和现在已经存在的分区YEARFG6分区中,这样此分区就存储了两段partition的数据。

ALTER PARTITION SCHEME YEARPS

NEXT USED YEARFG6;

--更改分区函数

ALTER PARTITION FUNCTION YEARPF()

SPLIT RANGE ('01/01/2005') 

--现在我们可以看一下我们刚才插入的行都分布在哪个Partition?

SELECT *, $PARTITION.YEARPF(DUEDATE) FROM PARTITIONEDORDERS

--我们可以看一下我们现在PARTITIONEDORDERS表的数据存储在哪此partition中,以及在这些分区中数据量的分布

SELECT * FROM SYS.PARTITIONS WHERE OBJECT_ID = OBJECT_ID('PARTITIONEDORDERS')


 1.为数据库新建多个文件组,可分布于不同大磁盘上

ALTER DATABASE [D]
ADD FILEGROUP [GF1]
2.一个文件组可放置多个文件,下面,只为一个文件组分配一个文件

ALTER DATABASE [D] ADD FILE ( NAME = N'GF1', FILENAME = N'E:\D\D1\DGF1.ndf' , SIZE = 5MB , FILEGROWTH = 10% )
 TO FILEGROUP [GF1]
3.创建分区函数

CREATE PARTITION FUNCTION [D_PARTITIONFUNC] (int)
        AS RANGE LEFT FOR VALUES (200000,400000,500000)
4.将分区函数绑定到分区架构上

CREATE PARTITION SCHEME [D_PARTITION_SHEME]
AS PARTITION [D_PARTITIONFUNC]
TO ([PRIMARY],[GF1],[PRIMARY],[GF1])
注意primary表示主文件组,既是数据库建立大时候默认的

5.删除主键

ALTER TABLE dbo.B DROP CONSTRAINT [PK_B]
上一步可以不做,不过我个人推荐,因为分区键(分区函数的参数)必须建立在主键上

6.开始对表分区

ALTER TABLE  dbo.B add CONSTRAINT [PK_B] PRIMARY KEY CLUSTERED (ID)
ON [D_PARTITION_SHEME](ID)

 详细介绍请参考:http://www.diybl.com/course/7_databases/sql/msxl/2008410/109878.html