當前位置:聚美館>智慧生活>心理>

SQL數據庫如何壓縮

心理 閱讀(1.42W)
SQL數據庫如何壓縮

sql數據庫壓縮步驟一:清空日誌

DUMP TRANSACTION 庫名 WITH NO_LOG

sql數據庫壓縮步驟二:截斷事務日誌

BACKUP LOG 數據庫名 WITH NO_LOG

sql數據庫壓縮步驟三:收縮數據庫檔案

如果不壓縮,數據庫的檔案不會減小

企業管理器--右鍵你要壓縮的數據庫--所有任務--收縮數據庫--收縮檔案

--選擇日誌檔案--在收縮方式裏選擇收縮至XXM,這裏會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了

--選擇數據檔案--在收縮方式裏選擇收縮至XXM,這裏會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了

也可以用SQL語句來完成

--收縮數據庫

DBCC SHRINKDATABASE(客戶資料)

--收縮指定數據檔案,1是檔案號,可以透過這個語句查詢到:

select * from sysfiles DBCC SHRINKFILE(1)

sql數據庫壓縮步驟四:最大化的縮小日誌檔案

(如果是sql 7.0,這步只能在查詢分析器中進行)

a.分離數據庫:

企業管理器--服務器--數據庫--右鍵--分離數據庫

b.在我的電腦中刪除LOG檔案

c.附加數據庫:

企業管理器--服務器--數據庫--右鍵--附加數據庫

此法將生成新的LOG,大小隻有500多K

或用代碼:

下面的示例分離 pubs,然後將 pubs 中的一個檔案附加到當前服務器。

a.分離

EXEC sp_detach_db @dbname = ’pubs’

b.刪除日誌檔案

c.再附加

EXEC sp_attach_single_file_db @dbname = ’pubs’, @physname = ’c:Program FilesMicrosoft SQL ’

sql數據庫壓縮步驟五:爲了以後能自動收縮,做如下設定

企業管理器--服務器--右鍵數據庫--屬性--選項--選擇"自動收縮"

--SQL語句設定方式:

EXEC sp_dboption ’數據庫名’, ’autoshrink’, ’TRUE’

sql數據庫壓縮步驟六:避免日誌增長得太大

企業管理器--服務器--右鍵數據庫--屬性--事務日誌

--將檔案增長限制爲xM(x是你允許的最大數據檔案大小)

--SQL語句的設定方式:

alter database 數據庫名 modify file(name=邏輯檔案名,maxsize=20)

可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令來壓縮數據庫。其中DBCC SHRINKDATABASE 命令對數據庫進行壓縮,DBCC SHRINKFILE 命令對數據庫中指定的檔案進行壓縮。DBCC SHRINKDATABASE 命令語法如下:DBCC SHRINKDATABASE (database_name [, target_percent][, {NOTRUNCATE | TRUNCATEONLY}] )各參數說明如下:target_percent: 指定將數據庫壓縮後,未使用的空間佔數據庫大小的百分之幾。如果指定的百分比過大,超過了壓縮前未使用空間所佔的比例,則數據庫不會被壓縮。並且壓縮後的數據庫不能比數據庫初始設定的容量小。NOTRUECATE:將數據庫縮減後剩餘的空間保留在數據庫,中不返還給操作系統 ,如果不選擇此選項,則剩餘的空間返還給操作系統。TRUNCATEONLY :