(精华)2020年10月16日 数据库调优 分库分表底层详解(分区)
【摘要】
数据库层面(表分区,读写分离)
第一步:创建文件组,分别向文件组中添加文件
use master
go
if exists(select * from sys.databases where da...
数据库层面(表分区,读写分离)
第一步:创建文件组,分别向文件组中添加文件
use master
go
if exists(select * from sys.databases where database_id = DB_ID('Test'))
drop database Test
--1.创建数据库
create database Test on(name =N'Test',filename=N'e:\test\test.mdf',size = 3MB,filegrowth = 1MB)log on(name = N'Test_log',filename = N'e:\test\test_log.ldf',size = 1MB,filegrowth = 1MB)
go
use Test
go
--2.创建文件组
alter database Test
add filegroup fg_test_id_01
alter database Test
add filegroup fg_test_id_02
--3.创建文件
alter database Test
add file(name = N'f_Test_file_01_data',filename = N'e:\test\f_Test_file_01_data.ndf',size = 1MB,filegrowth = 1MB)to filegroup fg_test_id_01
alter database Test
add file(name = N'f_Test_file_02_data',filename = N'e:\test\f_Test_file_02_data.ndf',size = 1MB,filegrowth = 1MB)to filegroup fg_test_id_02
--4.创建表
create table aa(id int,cname varchar(1000)) on fg_test_id_01
go
--5.插入数据
insert into aa select 1,replicate('s',1000)
go 500
--6.查询数据
select * from aa
--7.创建聚集索引在 fg_test_id_02 --将表 从原来的文件组挪到 新的文件组
create clustered index pk_id on aa(id) with(online = on) on fg_test_id_02
go
--8.查看一下文件组的逻辑文件名
exec sys.sp_helpdb @dbname='Test'
--9.收缩一下fg_test_id_01文件组文件
dbcc shrinkfile(f_Test_file_01_data,1)
--10.可以删除聚集索引,也可以不删除
drop index pk_id on aa
--11.删除数据库
use master
go
drop database Test
---------------------------------------------------------------------------------------------------------------------------------------------------------------
--创建文件组及文件
use Test
go
alter PROCEDURE [dbo].[pro_CreateNextFileGroup]
@Database Varchar(50),
@Date Datetime,
@path varchar(100)
AS
begin
Declare @Sql Varchar(8000),@NextMonth Varchar(6)
Set @NextMonth=Convert(Varchar(6),Dateadd(Month,1,@Date),112)
--创建文件组
Set @Sql='Use '+@Database+'
alter database '+@Database+'
add filegroup FG_'+@Database+'_yyyyMM'
Set @Sql=Replace(@Sql,'yyyyMM',@NextMonth)
Exec(@Sql)
--创建文件
Set @Sql='Use '+@Database+'
alter database '+@Database+'
add file(name = N''F_'+@Database+'_yyyyMM_data'',filename = N'''+@path+'\F_'+@Database+'_yyyyMM_data.ndf'',size = 1MB,filegrowth = 1MB)to filegroup FG_'+@Database+'_yyyyMM'
Set @Sql=Replace(@Sql,'yyyyMM',@NextMonth)
Exec(@Sql)
end
--执行过程
use Test
go
exec [pro_CreateNextFileGroup] 'Test','2016-05-01','e:\test'
第二步:选择数据库=》存储=》分区
文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。
原文链接:codeboy.blog.csdn.net/article/details/109125195
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)