環境:
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
//該命令是設置自動收縮數據庫
本文完。。。



