第一章 第一节 SQL Server 数据库规划和分区技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1数据库
1.1.1创建
CREATE DATABASE name
[ [ WITH ][ OWNER [=]user_name ]
[ TEMPLATE [=]template ]
[ ENCODING [=]encoding ]
[ LC_COLLATE [=]lc_collate ]
[ LC_CTYPE [=]lc_ctype ]
[ TABLESPACE [=]tablespace_name ]
[ CONNECTION LIMIT [=]connlimit ] ]
1.1.2删除
DROP DATABASE db_name01
1.1.3修改
1.1.3.1查看当前的存放位置
select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files where database_id=db_id(N'数据库名');
1.1.3.2修改默认的数据库文件存放位置(即时生效)
EXEC xp_instance_regwrite
@rootkey='HKEY_LOCAL_MACHINE',
@key='Software\Microsoft\MSSQLServer\MSSQLServer',
@value_name='DefaultData',
@type=REG_SZ,
@value='E:\MSSQL_MDF\data'
GO
1.1.3.3修改默认的日志文件存放位置(即时生效)
EXEC master..xp_instance_regwrite
@rootkey='HKEY_LOCAL_MACHINE',
@key='Software\Microsoft\MSSQLServer\MSSQLServer',
@value_name='DefaultLog',
@type=REG_SZ,
@value='E:\MSSQL_MDF\log'
GO
1.1.3.4修改数据库文件自动增长
ALTER DATABASE db_003MODIFY FILE (NAME=N'db_003a',FILEGROWTH= 10%)
ALTER DATABASE db_016MODIFY FILE (NAME=N'db_016',maxsize= UNLIMITED)
1.1.3.5重命名数据库
EXEC sp_dboption'OldDbName','Single User','TRUE'
EXEC sp_renamedb'OldDbName','NewDbName'
EXEC sp_dboption'NewDbName','Single User','FALSE'
1.1.3.6向数据库添加数据文件或日志文件
USE master
GO
ALTER DATABASE db_test
ADD FILEGROUP Test1FG1;
GO
ALTER DATABASE db_test
ADD FILE
(
NAME=test1dat3,
FILENAME='d:\MSSQLSERVER\DATA\t1dat3.ndf',
SIZE= 5MB,
MAXSIZE= 100MB,
FILEGROWTH= 5MB
),
(
NAME=test1dat4,
FILENAME='d:\MSSQLSERVER\DATA\t1dat4.ndf',
SIZE= 5MB,
MAXSIZE= 100MB,
FILEGROWTH= 5MB
)
TO FILEGROUP Test1FG1;
GO
1.1.3.7数据库规划和分区技术(新建)
第一步:首先建立我们要使用的数据库,最重要的是建立多个文件组
我们先新建立四个目录,来组成文件组,一个用来存放主文件的目录:Primary
三个数据文件目录:FG1、FG2、FG3
建立库:
create database Sales on primary
(
name=N'Sales',
filename=N'C:\data\Primary\Sales.mdf',
size=3MB,
maxsize=100MB,
filegrowth=10%
),
filegroup FG1
(
NAME=N'File1',
FILENAME=N'C:\data\FG1\File1.ndf',
SIZE= 1MB,
MAXSIZE= 100MB,
FILEGROWTH= 10%
),
FILEGROUP FG2
(
NAME=N'File2',
FILENAME=N'C:\data\FG2\File2.ndf',
SIZE= 1MB,
MAXSIZE= 100MB,
FILEGROWTH= 10%
),
FILEGROUP FG3
(
NAME=N'File3',
FILENAME=N'C:\data\FG3\File3.ndf',
SIZE= 1MB,
MAXSIZE= 100MB,
FILEGROWTH= 10%
)
LOG ON
(
NAME=N'Sales_Log',
FILENAME=N'C:\data\Primary\Sales_Log.ldf',
SIZE= 1MB,
MAXSIZE= 100MB,
FILEGROWTH= 10%
)
GO
第二步:建立分区函数
目的是用来规范不同数据存放到不同目录的标准,简单讲就是如何分区。USE Sales
GO
CREATE PARTITION FUNCTION pf_OrderDate(datetime)
AS RANGE RIGHT
FOR VALUES ('2003/01/01','2004/01/01')
GO
第三步:创建分区方案,关联到分区函数
目的就是我们将已经建立好的分区函数组织成一套方案,简单点将就是我们在哪里对数据进行分区。
创建分区方案的Transact-SQL语法:
CREATE PARTITION SCHEME partition_scheme_name
AS PARTITION partition_function_name
[ ALL ] TO ( { file_group_name | [ PRIMARY ] } [ ,...n ] )
[ ; ]
参数:
partition_scheme_name:分区方案的名称。分区方案名称在数据库中必须是唯一的,并且符合标识符规则。
partition_function_name:使用分区方案的分区函数的名称。分区函数