SQL Server -- 數據收縮詳解


1. 數據庫的相關屬性

在MS中創建數據庫時會為數據庫分配初始的大小(如下圖:數據庫和日志兩個文件),隨着數據庫的使用文件會逐漸增大。數據庫文件大小的增加有兩種方式:

  • 自動增長:在自動增長中可以設置每次的增長量,以及最大增長的文件大小。
  • 手動增長:取消“啟用自動增長”則為手動增長,這就需要DBA經常觀測數據庫的運行情況,及時更改數據庫的小。手動增長比較麻煩,一般都設為自動增長。

2. 為何數據庫需要收縮?

要明白為何數據庫需要收縮,首先需要理解兩個概念:

  • 為數據庫分配的空間:如上圖初始時為“數據庫文件”分配的空間為3MB,為“日志文件”分配的空間未1MB。
  • 數據庫實際使用的空間:以上圖為例,由於數據是剛創建的,里面沒有任何用戶數據,因此它實際使用的空間很小(不足1MB)。

由此可以理解為:分配空間>=使用空間。在實際使用的過程中可能會出現分配空間為100MB,而使用空間僅為20MB,這就造成了磁盤有80MB的浪費,為了消除這種浪費就需要使用“數據收縮”功能。

3. 如何收縮數據庫?

3.1 通過設置數據庫選項AUTO_SHRINK為True,即讓數據庫自動收縮,如下圖:

3.2 收縮數據庫文件

右鍵數據庫—任務—收縮—文件,如下圖:

文件類型:選擇所要收縮的是“數據庫文件”還是“日志文件”。

當前分配的空間:數據庫為該文件分配的大小,就是在磁盤上看到的文件大小。

可用空間:就是“當前分配的空間” 減去“實際使用的空間”。

收縮操作
   ① 釋放未使用的空間:將該文件中未使用的空間釋放出來,數據在文件中不移動;
   ② 在釋放未使用的空間前重新組織頁:此選項可以將文件收縮到“指定大小”,並將數據重新組織。其最小值為數據庫“實際使用的空間”;
   ③ 通過將數據遷移到同一文件組的其他文件來清空文件:不解釋,很少用。

上述操作也可以使用T-SQL替代

DBCC ShrinkFile(‘數據庫名’,  targetsize);			/* 收縮數據庫文件 */
DBCC ShrinkFile(‘數據庫名_log’,  targetsize);		/* 收縮日志文件 */

Targetsize:單位為兆,必須為整數,DBCC SHRINKFILE 嘗試將文件收縮到指定大小。

DBCC SHRINKFILE 不會將文件收縮到小於“實際使用的空間”大小,例如“分配空間”為10M,“實際使用空間”為6M,當制定targetsize為1時,則將該文件收縮到6M,不會將文件收縮到1M。

3.3 收縮數據庫

即同時收縮“數據庫文件”和“日志文件”,右鍵數據庫—任務—收縮—數據庫

收縮后的最大可用空間:設為0,即收縮所有的可用空間。

也可以使用T-SQL完成數據庫的收縮

DBCC SHRINKDATABASE(數據庫名,百分比)

百分比:即“收縮后文件中的最大可用空間”,取值范圍“大於等於0, 小於100%”,實際使用中設為0即可。

 

出處:https://www.cnblogs.com/rainman/p/3470220.html

======================================================================================

sql數據庫收縮有幾種方法

--1用dbcc命令,帶不同的bai參數測試
--1.1收縮指定數據庫中的數據文du件和日志zhi文dao件的大小
DBCC SHRINKDATABASE ( test )
DBCC SHRINKDATABASE ( test,TRUNCATEONLY )
DBCC SHRINKDATABASE ( test,NOTRUNCATE )
DBCC SHRINKDATABASE ( test ) WITH NO_INFOMSGS
    
--1.2收縮當前數據庫的指定數據或日志文件的大小,
DBCC SHRINKFILE (Test)
DBCC SHRINKFILE (Test_log)
DBCC SHRINKFILE (Test_log,EMPTYFILE)
DBCC SHRINKFILE (Test_log,TRUNCATEONLY) WITH NO_INFOMSGS
--2.用企業管理器
--選中數據庫->右鍵->任務->數據庫/文件->確定

原文鏈接: https://zhidao.baidu.com/question/1990256690556551547.html

 

收縮數據庫日志文件

首先打開你要收縮的數據庫點擊右鍵屬性——點擊選項——在恢復模式中選擇簡單——點擊確定;然后重新右鍵點擊數據庫——選擇任務——選擇收縮——選擇文件——在文件類型中選擇日志——在收縮操作中選擇在釋放未使用的空間前重新組織頁——將文件收縮到你想要的大小——點擊確定。

 

原文鏈接: https://blog.51cto.com/chengfei/427481

======================================================================================

SQL2008R2數據庫日志太大收縮方法

1.登陸項目平台數據庫服務器。雙擊SQL Server Management Studio打開數據庫管理。登陸數據庫

clip_image004

2.如下圖,打開數據庫屬性窗口

clip_image006

3.如下圖,更改數據庫恢復模式

clip_image010

4.如下圖,收縮數據庫日志

clip_image012

clip_image014

到這里已經完成了,數據庫的日志收縮

5.如下圖,數據庫恢復模式修改為完整

clip_image016


__EOF__

 

出處:https://www.cnblogs.com/airoot/p/7851849.html


免責聲明!

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



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