SQL Server 數(shù)據(jù)庫中的收縮數(shù)據(jù)庫和文件操作
1. 概述
當(dāng)數(shù)據(jù)庫隨著時間而越來越大時,可對數(shù)據(jù)庫進行收縮操作;收縮數(shù)據(jù)文件通過將數(shù)據(jù)頁從文件末尾移動到更靠近文件開頭的未占用的空間來恢復(fù)空間,在文件末尾創(chuàng)建足夠的空間后,可取消對文件末尾的數(shù)據(jù)頁的分配并將它們返回給文件系統(tǒng);
2. 自動收縮數(shù)據(jù)庫
SQL Server 數(shù)據(jù)庫支持自動收縮數(shù)據(jù)庫和用戶手動收縮數(shù)據(jù)庫兩種方式;為提高數(shù)據(jù)庫的使用效率,SQL Server 會尋找可用的數(shù)據(jù)庫并找出第一個配置為自動收縮的數(shù)據(jù)庫,它將檢查該數(shù)據(jù)庫,并在需要時收縮該數(shù)據(jù)庫;待一個數(shù)據(jù)庫收縮完成后,系統(tǒng)會等待幾分鐘再檢查下一個配置為自動收縮數(shù)據(jù)庫,即 SQL Server 不會同時堅持所有數(shù)據(jù)庫,也不會同時收縮所有數(shù)據(jù)庫,它將以循環(huán)方式處理各個數(shù)據(jù)庫,以負(fù)載在時間上錯開;若用戶需要 SQL Server 數(shù)據(jù)庫系統(tǒng)自動對數(shù)據(jù)庫進行收縮,只需為該數(shù)據(jù)庫設(shè)置自動收縮功能即可;操作步驟如下所示:
右擊選擇數(shù)據(jù)庫 → 屬性 → 在數(shù)據(jù)庫屬性對話框,選項 → 將自動收縮設(shè)置為 TRUE;

3. 手動收縮數(shù)據(jù)庫
用戶還能手動對數(shù)據(jù)庫進行收縮,但手動收縮數(shù)據(jù)庫有一定的限制和局限;主要的表現(xiàn)有如下幾個方面:
- 收縮后的數(shù)據(jù)庫不能小于數(shù)據(jù)庫的最小大小 ;最小大小在數(shù)據(jù)庫創(chuàng)建時指定的大小,或者上一次使用文件大小更改操作設(shè)置的大?。?/li>
- 不能在備份數(shù)據(jù)庫時收縮數(shù)據(jù)庫;反之,也不能在數(shù)據(jù)庫執(zhí)行收縮時備份數(shù)據(jù)庫;
- 遇到內(nèi)存游湖的列存儲索引時,DBCC SHRINKDATABASE 操作將會失??;遇到 columnstore 索引之前完成的工作將會成功,所以數(shù)據(jù)庫可能會較?。蝗粢瓿?DBCC SHRINKDATABASE,則需要執(zhí)行 DBCC SHRINKDATABASE前禁用所有列的存儲索引,再重新生成列存儲的索引;
手動收縮數(shù)據(jù)庫可在 SSMS 工具的對象資源管理器中完成,具體步驟如下:
- 展開數(shù)據(jù)庫,右擊要收縮的數(shù)據(jù)庫;
- 任務(wù) → 收縮 → 單擊數(shù)據(jù)庫


在收縮數(shù)據(jù)界面展示的是數(shù)據(jù)庫 srs 的基本信息,若需要進行收縮操作,需要先選中在釋放未使用的空間前重新組織文件。選中此項可能會影響性能(R),再收縮后文件中的最大可用空間中選擇收縮后的空間,單擊確定,即可完成手動收縮數(shù)據(jù)庫操作;
4. 手動收縮文件
- 手動收縮文件跟手動收縮數(shù)據(jù)庫操作類似;
- 在 SSMS 工具對文件的對象資源管理器中完成,具體步驟如下:
展開數(shù)據(jù)庫,右擊數(shù)據(jù)庫;任務(wù) → 收縮 → 單擊文件

在收縮操作文件界面,在收縮操作中,可選擇釋放未使用空間、在釋放未使用空間前重新組織頁、通過將數(shù)據(jù)遷移到同一文件組中的其他文件來清空文件,三選一來進行手動收縮文件操作;
到此這篇關(guān)于SQL Server 數(shù)據(jù)庫之收縮數(shù)據(jù)庫和文件的文章就介紹到這了,更多相關(guān)sqlserver收縮數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL Server 2016的數(shù)據(jù)庫范圍內(nèi)的配置詳解
這篇文章主要介紹了SQL Server 2016的數(shù)據(jù)庫范圍內(nèi)的配置詳解的相關(guān)資料,需要的朋友可以參考下2016-03-03
SQL?Server查看當(dāng)前連接數(shù)和最大連接數(shù)具體方法代碼
這篇文章主要介紹了SQL?Server查看當(dāng)前連接數(shù)和最大連接數(shù)的具體方法,講解了使用系統(tǒng)視圖、配置選項、實時監(jiān)控和SQL?Server?Management?Studio等方法,每種方法都給出了代碼示例,需要的朋友可以參考下2025-04-04
SQL Server2022安裝教程的實現(xiàn)步驟(圖文教程)
在日常的工作中,sql server作為一款常用的數(shù)據(jù)庫管理系統(tǒng),安裝與配置就顯得非常重要,本文主要介紹了SQL Server2022安裝教程的實現(xiàn)步驟,感興趣的可以了解一下2023-09-09
sqlserver 樹形結(jié)構(gòu)查詢單表實例代碼
這篇文章主要介紹了 sqlserver 樹形結(jié)構(gòu)查詢單表的實例代碼,需要的朋友可以參考下2017-08-08
SQLServer 優(yōu)化SQL語句 in 和not in的替代方案
用IN寫出來的SQL的優(yōu)點是比較容易寫及清晰易懂,這比較適合現(xiàn)代軟件開發(fā)的風(fēng)格。2010-04-04
附加到SQL2012的數(shù)據(jù)庫就不能再附加到低于SQL2012的數(shù)據(jù)庫版本的解決方法
這篇文章主要介紹了附加到SQL2012的數(shù)據(jù)庫就不能再附加到低于SQL2012的數(shù)據(jù)庫版本的解決方法,需要的朋友可以參考下2014-02-02

