sql-server的添加数据库文件(日志数据)以及收缩数据库文件(日志数据)
Posted jojoword
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql-server的添加数据库文件(日志数据)以及收缩数据库文件(日志数据)相关的知识,希望对你有一定的参考价值。
环境:
SSMS
sql-server2016
一、为数据库添加数据文件
添加日志数据文件
以下是添加数据文件和日志文件的代码
ALTER DATABASE [joinbest] ADD FILE ( NAME = N\'joinbest_2\', FILENAME = N\'C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\joinbest_2.ndf\' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [PRIMARY]
ALTER DATABASE [joinbest] ADD FILE ( NAME = N\'joinbest_2_log\', FILENAME = N\'C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\MSSQL\\DATA\\joinbest_2_log.ndf\' , SIZE = 8192KB , FILEGROWTH = 65536KB ) TO FILEGROUP [PRIMARY]
二、测试文件自动增长功能,往joinbestgo数据库添加海量数据
use benet
create table t(id int,name nvarchar(max),pwd nvarchar(max))
为t表添加100000行数据,观察cpu、内存和文件大小的变化
declare @i int=1;
while(@i<=100000)
begin
insert into t values(@i,replicate(rand()*100000,1000)
,replicate(rand()*100000,1000));
set @i=@i+1;
end
如果一切操作无误的话,相信你已经看到结果了,数据文件原始文件是8M,自动增长,每次增长64M,没有上限;但是日志文件是必须要设置上限的,原因是,不管数据库做什么样的更改操作,都会记录到日志文件里面,更是要定期的进行清理呢
三、删除数据库中数据,查看测试结果
删除t表中的数据,观察cpu、内存和文件大小的变化
delete from t
我们在观察一下数据文件,以及日志文件的大小,日志文件更大了,而且数据文件大小也没有降下来,这是因为虽然你删除了数据,但是文件在你的文件系统磁盘上还是占着那么大地方,只不过里面没有东西而已
收缩数据库,从而节省磁盘资源
DBCC SHRINKDATABASE(N\'joinbest\')
//执行该命令是收缩整个数据库的容量,
DBCC SHRINKFILE (N\'joinbest\' , 5)
//该命令是收缩单个数据文件的
ALTER DATABASE [joinbest] SET AUTO_SHRINK ON WITH NO_WAIT
//该命令是设置自动收缩数据库
本文完。。。
以上是关于sql-server的添加数据库文件(日志数据)以及收缩数据库文件(日志数据)的主要内容,如果未能解决你的问题,请参考以下文章