码迷,mamicode.com
首页 > 数据库 > 详细

MS SQL Server 2008 R2 常规操作

时间:2016-12-15 09:18:58      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:com   date   tin   move   alt   with   esc   表分区   server   

列出当前数据库使用的所有文件

DBCC showfilestats 

 转移当前文件组中某个文件的数据到同文件组中的其他文件中

DBCC SHRINKFILE (‘file‘, EMPTYFILE);

 移除文件组中的某个文件

ALTER DATABASE [db] REMOVE FILE [file] 

 移除文件组

ALTER DATABASE [db] REMOVE FILEGROUP [FileGroup] 

 添加文件组

alter database [db] add filegroup Group1704

 给文件组中添加文件

alter database [db] add file   
(
    NAME=db_170103,
    FILENAME=‘E:\DB\db_170113.ndf‘,
    SIZE=3MB,
    FILEGROWTH=20MB
),(
    NAME=db_170104,
    FILENAME=‘E:\DBdb_170114.ndf‘,
    SIZE=3MB,
    FILEGROWTH=20MB
)
TO filegroup Group1701

 重命名文件名(逻辑),物理名不会重命名

alter database [db] modify file(name=‘db_170103‘,newname=‘db_01‘)

 创建分区函数(时间)

CREATE PARTITION FUNCTION ak_split_time_fun(datetime) AS RANGE LEFT FOR VALUES 
(N‘2016-08-01T00:00:00.000‘, N‘2016-09-01T00:00:00.000‘, N‘2016-10-01T00:00:00.000‘, N‘2016-11-01T00:00:00.000‘,
N‘2016-12-01T00:00:00.000‘, N‘2017-01-01T00:00:00.000‘, N‘2017-02-01T00:00:00.000‘, N‘2017-03-01T00:00:00.000‘,
N‘2017-04-01T00:00:00.000‘, N‘2017-05-01T00:00:00.000‘, N‘2017-06-01T00:00:00.000‘, N‘2017-07-01T00:00:00.000‘,
N‘2017-08-01T00:00:00.000‘)

 创建分区方案(时间)

CREATE PARTITION SCHEME [ak_split_time_fung] AS PARTITION ak_split_time_fun TO 
([Group1608], [Group1609], [Group1610], [Group1611], [Group1612], [Group1701], [Group1702], [Group1703],
[Group1704], [Group1705], [Group1706], [Group1707], [Group1708], [PRIMARY])

 创建分区函数 (日期)

CREATE PARTITION FUNCTION ak_split_date_fun(date) AS RANGE LEFT FOR VALUES 
(N‘2016-08-01T00:00:00.000‘, N‘2016-09-01T00:00:00.000‘, N‘2016-10-01T00:00:00.000‘, N‘2016-11-01T00:00:00.000‘,
N‘2016-12-01T00:00:00.000‘, N‘2017-01-01T00:00:00.000‘, N‘2017-02-01T00:00:00.000‘, N‘2017-03-01T00:00:00.000‘,
N‘2017-04-01T00:00:00.000‘, N‘2017-05-01T00:00:00.000‘, N‘2017-06-01T00:00:00.000‘, N‘2017-07-01T00:00:00.000‘,
N‘2017-08-01T00:00:00.000‘)

 创建分区方案 (日期)

CREATE PARTITION SCHEME [ak_split_date_fung] AS PARTITION ak_split_date_fun TO 
([Group1608], [Group1609], [Group1610], [Group1611], [Group1612], [Group1701], [Group1702], [Group1703],
[Group1704], [Group1705], [Group1706], [Group1707], [Group1708], [PRIMARY])

 创建分区函数(guid | uniqueidentifier)

CREATE PARTITION FUNCTION [ak_split_guid_fun]([uniqueidentifier]) AS RANGE LEFT FOR VALUES
( ‘00000000-0000-0000-0000-174600000000‘, ‘00000000-0000-0000-0000-2E8B00000000‘, ‘00000000-0000-0000-0000-45D100000000‘, 
‘00000000-0000-0000-0000-5D1700000000‘, ‘00000000-0000-0000-0000-745D00000000‘, ‘00000000-0000-0000-0000-8BA200000000‘,
‘00000000-0000-0000-0000-A2E800000000‘, ‘00000000-0000-0000-0000-BA2E00000000‘, ‘00000000-0000-0000-0000-D17400000000‘,
‘00000000-0000-0000-0000-E8B900000000‘)

 创建分区方案 (guid | uniqueidentifier)

CREATE PARTITION SCHEME [ak_split_guid_fung]
AS PARTITION [ak_split_guid_fun] TO ([Group1608], [Group1609], [Group1610], [Group1611], [Group1612], [Group1701], 
[Group1702], [Group1703], [Group1704], [Group1705], [PRIMARY])

 对现有分区函数和分区方案添加分区

alter partition scheme ak_dutysource_old_fung next used Group1702
go
alter partition function ak_dutysource_old_partition_fun() split range(N‘2017-02-01T00:00:00.000‘)

 合并分区函数

alter partition function ak_dutysource_partition_fun() merge range(N‘2016-08-01T00:00:00‘)

 删除表分区(将分区表转换为普通表),主要是将分区应用的索引删除

CREATE CLUSTERED INDEX IX_ak_dutySource_2 ON ak_dutysource(chkTime desc)  WITH ( DROP_EXISTING = ON) ON [PRIMARY] 

 删除分区方案

drop partition scheme [ak_dutysource_partition_fang]

 删除分区函数

drop partition function [ak_dutySource_partition_fun]

 应用表分区(删除先前的聚焦索引,重新创建聚焦索引)

BEGIN TRANSACTION
ALTER TABLE [dbo].[ak_account_pointrecords] DROP CONSTRAINT [PK_AK_ACCOUNT_POINTRECORDS]
ALTER TABLE [dbo].[ak_account_pointrecords] ADD  CONSTRAINT [PK_AK_ACCOUNT_POINTRECORDS] PRIMARY KEY NONCLUSTERED 
(
	[guid] 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]
CREATE CLUSTERED INDEX [ClusteredIndex_on_ak_split_guid_fung_636172205823253839] ON [dbo].[ak_account_pointrecords]
(
	[userGuid]
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [ak_split_guid_fung]([userGuid])
DROP INDEX [ClusteredIndex_on_ak_split_guid_fung_636172205823253839] ON [dbo].[ak_account_pointrecords]

 

MS SQL Server 2008 R2 常规操作

标签:com   date   tin   move   alt   with   esc   表分区   server   

原文地址:http://www.cnblogs.com/maomao999/p/6181840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!