當前位置:首頁 » 編程語言 » sqlserver自動收縮

sqlserver自動收縮

發布時間: 2025-08-21 03:07:28

1. sqlServer中的收縮資料庫是什麼意思(sql收縮資料庫命令)

收縮資料庫

資料庫中的每個文件都可以通過刪除未使用的頁的方法來減小。盡管資料庫引擎會有效地重新使用空間,但某個文件多次出現無需原來大小的情況後,收縮文件就變得很有必要了。數據和事務日誌文件都可以減小(收縮)。可以成組或單獨地手動收縮資料庫文件,也可以設置資料庫,使其按照指定的間隔自動收縮。

文件始終從末尾開始收縮。例如,如果有個5GB的文件,並且在DBCCSHRINKFILE語句中將target_size指定為4GB,則資料庫引擎將從文件的最後一個1GB開始釋放盡可能多的空間。如果文件中被釋放的部分包含使用過的頁,則資料庫引擎先將這些頁重新放置到文件的保留部分。只能將資料庫收縮到沒有剩餘的可用空間為止。例如,如果某個5GB的資料庫有4GB的數據,並且在DBCCSHRINKFILE語句中將target_size指定為3GB,則只能釋放1GB。

自動資料庫收縮

將AUTO_SHRINK資料庫選項設置為ON後,資料庫引擎將自動收縮具有可用空間的資料庫。此選項可以使用ALTERDATABASE語句來進行設置。默認情況下,此選項設置為OFF。資料庫引擎會定期檢查每個資料庫的空間使用情況。如果某個資料庫的AUTO_SHRINK選項設置為ON,則資料庫引擎將減少資料庫中文件的大小。該活動在後台進行,並且不影響資料庫內的用戶活動。

將資料庫設置為自動收縮

ALTERDATABASE(Transact-SQL)

手動資料庫收縮

您可以使用DBCC語句或DBCCSHRINKFILE語句來手動收縮資料庫或資料庫中的文件。如果DBCC或DBCCSHRINKFILE語句無法回收日誌文件中的所有指定空間,則該語句將發出信息性消息,指明必須執行什麼操作以便釋放更多空間。有關收縮日誌文件的詳細信息,請參閱收縮事務日誌。

在該過程中任意時間都可停止DBCC和DBCCSHRINKFILE操作,所有已完成工作都將保留。

在使用DBCC語句時,您無法將整個資料庫收縮得比其初始大小更小。因此,如果資料庫創建時的大小為10MB,後來增長到100MB,則該資料庫最小隻能收縮到10MB,即使已經刪除資料庫的所有數據也是如此。

但是,使用DBCCSHRINKFILE語句時,可以將各個資料庫文件收縮得比其初始大小更小。必須對每個文件分別進行收縮,而不能嘗試收縮整個資料庫。

2. SQL Server 壓縮日誌及資料庫文件大小

請按步驟進行 未進行前面的步驟時 請不要做後面的步驟 以免損壞你的資料庫

一般不建議做第 兩步 第 步不安全 有可能損壞資料庫或丟失數據 第 步如果日誌達到上限 則以後的資料庫處理會失敗 在清理日誌後才能恢復

清空日誌

DUMP TRANSACTION 庫名 WITH NO_LOG

截斷事務日誌

BACKUP LOG 資料庫名 WITH NO_LOG

收縮資料庫文件(如果不壓縮 資料庫的文件不會減小

企業管理器 右鍵你要壓縮的資料庫 所有任務 收縮資料庫 收縮文件

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

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

也可以用SQL語句來完成

收縮資料庫

DBCC SHRINKDATABASE(客戶資料)

收縮指定數據文件 是文件號 可以通過這個語句查詢到:

select * from sysfiles

DBCC SHRINKFILE( )

為了最大化的縮小日誌文件(如果是sql 這步只能在查詢分析器中進行)

a 分離資料庫:

企業管理器 伺服器 資料庫 右鍵 分離資料庫

b 在我的電腦中刪除LOG文件

c 附加資料庫:

企業管理器 伺服器 資料庫 右鍵 附加資料庫

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

或用代碼

下面的示例分離 pubs 然後將 pubs 中的一個文件附加到當前伺服器

a 分離

EXEC sp_detach_db @dbname = pubs

b 刪除日誌文件

c 再附加

EXEC sp_attach_single_file_db @dbname = pubs

@physname = c:/Program Files/Microsoft

SQL Server/MSSQL/Data/pubs mdf

為了以後能自動收縮 做如下設置

企業管理器 伺服器 右鍵資料庫 屬性 選項 選擇 自動收縮

SQL語句設置方式:

EXEC sp_dboption 資料庫名

autoshrink TRUE

如果想以後不讓它日誌增長得太大

企業管理器 伺服器 右鍵資料庫 屬性 事務日誌

將文件增長限制為xM(x是你允許的最大數據文件大小)

SQL語句的設置方式:

lishixin/Article/program/SQLServer/201311/22266

3. SQL Server資料庫的收縮一直在執行

刪除表給資料庫縮小空間時:執行如下操作老是存在執行了5,6個小時,還是一直沒有執行完成。
在開啟自動收縮選項的情況下,SQLServer定期會檢查文件使用情況。如果空閑空間大於25%,SQLServer就會自動運行自動收縮資料庫文件的動作。

熱點內容
編程讓我著迷 發布:2025-08-21 05:22:28 瀏覽:763
80d怎麼看存儲 發布:2025-08-21 05:21:39 瀏覽:336
刺激戰場國際服安卓怎麼登不了 發布:2025-08-21 05:14:01 瀏覽:15
混沌序列加密圖像 發布:2025-08-21 04:54:21 瀏覽:955
從哪裡找微博登錄密碼 發布:2025-08-21 04:32:34 瀏覽:444
java輸出三角形 發布:2025-08-21 04:31:43 瀏覽:703
壓縮阻抗 發布:2025-08-21 03:52:28 瀏覽:435
javaopenssl加密 發布:2025-08-21 03:46:51 瀏覽:553
傳智php培訓 發布:2025-08-21 03:46:45 瀏覽:510
我的世界如何在伺服器檢查自己在線時間 發布:2025-08-21 03:45:28 瀏覽:466