sql-server的添加數據庫文件(日志數據)以及收縮數據庫文件(日志數據)


環境:

    SSMS

    sql-server2016

一、為數據庫添加數據文件

image

image

添加日志數據文件

image

以下是添加數據文件和日志文件的代碼

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

//該命令是設置自動收縮數據庫

本文完。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM