SQL Server 數(shù)據(jù)庫(kù)中的收縮數(shù)據(jù)庫(kù)和文件操作
1. 概述
當(dāng)數(shù)據(jù)庫(kù)隨著時(shí)間而越來(lái)越大時(shí),可對(duì)數(shù)據(jù)庫(kù)進(jìn)行收縮操作;收縮數(shù)據(jù)文件通過(guò)將數(shù)據(jù)頁(yè)從文件末尾移動(dòng)到更靠近文件開(kāi)頭的未占用的空間來(lái)恢復(fù)空間,在文件末尾創(chuàng)建足夠的空間后,可取消對(duì)文件末尾的數(shù)據(jù)頁(yè)的分配并將它們返回給文件系統(tǒng);
2. 自動(dòng)收縮數(shù)據(jù)庫(kù)
SQL Server 數(shù)據(jù)庫(kù)支持自動(dòng)收縮數(shù)據(jù)庫(kù)和用戶(hù)手動(dòng)收縮數(shù)據(jù)庫(kù)兩種方式;為提高數(shù)據(jù)庫(kù)的使用效率,SQL Server 會(huì)尋找可用的數(shù)據(jù)庫(kù)并找出第一個(gè)配置為自動(dòng)收縮的數(shù)據(jù)庫(kù),它將檢查該數(shù)據(jù)庫(kù),并在需要時(shí)收縮該數(shù)據(jù)庫(kù);待一個(gè)數(shù)據(jù)庫(kù)收縮完成后,系統(tǒng)會(huì)等待幾分鐘再檢查下一個(gè)配置為自動(dòng)收縮數(shù)據(jù)庫(kù),即 SQL Server 不會(huì)同時(shí)堅(jiān)持所有數(shù)據(jù)庫(kù),也不會(huì)同時(shí)收縮所有數(shù)據(jù)庫(kù),它將以循環(huán)方式處理各個(gè)數(shù)據(jù)庫(kù),以負(fù)載在時(shí)間上錯(cuò)開(kāi);若用戶(hù)需要 SQL Server 數(shù)據(jù)庫(kù)系統(tǒng)自動(dòng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行收縮,只需為該數(shù)據(jù)庫(kù)設(shè)置自動(dòng)收縮功能即可;操作步驟如下所示:
右擊選擇數(shù)據(jù)庫(kù) → 屬性 → 在數(shù)據(jù)庫(kù)屬性對(duì)話(huà)框,選項(xiàng) → 將自動(dòng)收縮設(shè)置為 TRUE;
3. 手動(dòng)收縮數(shù)據(jù)庫(kù)
用戶(hù)還能手動(dòng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行收縮,但手動(dòng)收縮數(shù)據(jù)庫(kù)有一定的限制和局限;主要的表現(xiàn)有如下幾個(gè)方面:
- 收縮后的數(shù)據(jù)庫(kù)不能小于數(shù)據(jù)庫(kù)的最小大小 ;最小大小在數(shù)據(jù)庫(kù)創(chuàng)建時(shí)指定的大小,或者上一次使用文件大小更改操作設(shè)置的大小;
- 不能在備份數(shù)據(jù)庫(kù)時(shí)收縮數(shù)據(jù)庫(kù);反之,也不能在數(shù)據(jù)庫(kù)執(zhí)行收縮時(shí)備份數(shù)據(jù)庫(kù);
- 遇到內(nèi)存游湖的列存儲(chǔ)索引時(shí),DBCC SHRINKDATABASE 操作將會(huì)失??;遇到 columnstore 索引之前完成的工作將會(huì)成功,所以數(shù)據(jù)庫(kù)可能會(huì)較小;若要完成 DBCC SHRINKDATABASE,則需要執(zhí)行 DBCC SHRINKDATABASE前禁用所有列的存儲(chǔ)索引,再重新生成列存儲(chǔ)的索引;
手動(dòng)收縮數(shù)據(jù)庫(kù)可在 SSMS 工具的對(duì)象資源管理器中完成,具體步驟如下:
- 展開(kāi)數(shù)據(jù)庫(kù),右擊要收縮的數(shù)據(jù)庫(kù);
- 任務(wù) → 收縮 → 單擊數(shù)據(jù)庫(kù)
在收縮數(shù)據(jù)界面展示的是數(shù)據(jù)庫(kù) srs 的基本信息,若需要進(jìn)行收縮操作,需要先選中在釋放未使用的空間前重新組織文件。選中此項(xiàng)可能會(huì)影響性能(R),再收縮后文件中的最大可用空間中選擇收縮后的空間,單擊確定,即可完成手動(dòng)收縮數(shù)據(jù)庫(kù)操作;
4. 手動(dòng)收縮文件
- 手動(dòng)收縮文件跟手動(dòng)收縮數(shù)據(jù)庫(kù)操作類(lèi)似;
- 在 SSMS 工具對(duì)文件的對(duì)象資源管理器中完成,具體步驟如下:
展開(kāi)數(shù)據(jù)庫(kù),右擊數(shù)據(jù)庫(kù);任務(wù) → 收縮 → 單擊文件
在收縮操作文件界面,在收縮操作中,可選擇釋放未使用空間、在釋放未使用空間前重新組織頁(yè)、通過(guò)將數(shù)據(jù)遷移到同一文件組中的其他文件來(lái)清空文件,三選一來(lái)進(jìn)行手動(dòng)收縮文件操作;
到此這篇關(guān)于SQL Server 數(shù)據(jù)庫(kù)之收縮數(shù)據(jù)庫(kù)和文件的文章就介紹到這了,更多相關(guān)sqlserver收縮數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL Server中執(zhí)行動(dòng)態(tài)SQL
本文詳細(xì)講解了SQL Server中執(zhí)行動(dòng)態(tài)SQL的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05SQL Server中自動(dòng)抓取阻塞的詳細(xì)流程
當(dāng)來(lái)自應(yīng)用程序的第一個(gè)連接控制鎖而第二個(gè)連接需要相沖突的鎖類(lèi)型時(shí),將發(fā)生阻塞,其結(jié)果是強(qiáng)制第二個(gè)連接等待,而在第一個(gè)連接上阻塞,本文給大家詳細(xì)介紹了SQL Server中如何自動(dòng)抓取阻塞,通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08必須會(huì)的SQL語(yǔ)句(三) 數(shù)據(jù)插入
這篇文章主要介紹了sqlserver中數(shù)據(jù)插入的sql語(yǔ)句,需要的朋友可以參考下2015-01-01SQL Server 2016的數(shù)據(jù)庫(kù)范圍內(nèi)的配置詳解
這篇文章主要介紹了SQL Server 2016的數(shù)據(jù)庫(kù)范圍內(nèi)的配置詳解的相關(guān)資料,需要的朋友可以參考下2016-03-03SQL?Server查看當(dāng)前連接數(shù)和最大連接數(shù)具體方法代碼
這篇文章主要介紹了SQL?Server查看當(dāng)前連接數(shù)和最大連接數(shù)的具體方法,講解了使用系統(tǒng)視圖、配置選項(xiàng)、實(shí)時(shí)監(jiān)控和SQL?Server?Management?Studio等方法,每種方法都給出了代碼示例,需要的朋友可以參考下2025-04-04SQL Server2022安裝教程的實(shí)現(xiàn)步驟(圖文教程)
在日常的工作中,sql server作為一款常用的數(shù)據(jù)庫(kù)管理系統(tǒng),安裝與配置就顯得非常重要,本文主要介紹了SQL Server2022安裝教程的實(shí)現(xiàn)步驟,感興趣的可以了解一下2023-09-09sqlserver 樹(shù)形結(jié)構(gòu)查詢(xún)單表實(shí)例代碼
這篇文章主要介紹了 sqlserver 樹(shù)形結(jié)構(gòu)查詢(xún)單表的實(shí)例代碼,需要的朋友可以參考下2017-08-08SQLServer 優(yōu)化SQL語(yǔ)句 in 和not in的替代方案
用IN寫(xiě)出來(lái)的SQL的優(yōu)點(diǎn)是比較容易寫(xiě)及清晰易懂,這比較適合現(xiàn)代軟件開(kāi)發(fā)的風(fēng)格。2010-04-04SQL Server多表查詢(xún)優(yōu)化方案集錦
本文我們主要對(duì)SQL Server多表查詢(xún)的優(yōu)化方案進(jìn)行了總結(jié),并給出了實(shí)際的例子進(jìn)行性能與效率的對(duì)比,需要的朋友可以參考下2015-08-08附加到SQL2012的數(shù)據(jù)庫(kù)就不能再附加到低于SQL2012的數(shù)據(jù)庫(kù)版本的解決方法
這篇文章主要介紹了附加到SQL2012的數(shù)據(jù)庫(kù)就不能再附加到低于SQL2012的數(shù)據(jù)庫(kù)版本的解決方法,需要的朋友可以參考下2014-02-02