當前位置:首頁 » 編程語言 » sqlserver2005收縮資料庫

sqlserver2005收縮資料庫

發布時間: 2023-10-23 11:08:07

sql Server資料庫的收縮一直在執行

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

② SQL Server 中的「收縮資料庫」是什麼意思

收縮資料庫

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

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

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

將資料庫設置為自動收縮

ALTER DATABASE (Transact-SQL)

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

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

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

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

③ sql server 收縮資料庫 需要多長時間

這個有很多因素,比如收縮的時候你的資料庫是否被訪問等等,收縮數據文件是單線程的操作,所以CPU再好也沒用,一般收縮的話都少量多次這樣操作。。。

④ sql收縮資料庫日誌的幾種辦法

在SQL Server 2000/2005中可以快速壓縮日誌log文件,通過SQL,

方法一:

--BigData為資料庫名
DUMPTRANSACTIONBigDataWITHNO_LOG
BACKUPLOGBigDataWITHNO_LOG
DBCCSHRINKDATABASE(BigData)

執行以上語句可以快速壓縮日誌文件到1M。

但是以上語句中前兩行在SQL Server 2008下無法執行 ,

第一行提示「Incorrect syntax near the keyword 'TRANSACTION'.」

第二行提示「One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. 」

第三行可以執行。但日誌log文件沒有任何變化。

原來SQL Server 2008已經不再支持DUMPTRANSACTION和BACKUP LOG WITH NO_LOG,

sql Server 2005說明中明確:包含 DUMP 語句是為了向後兼容。而 後續版本的 Microsoft SQL Server 將刪除該功能。請避免在新的開發工作中使用該功能,並著手修改當前還在使用該功能的應用程序。 使用 BACKUP。

SQL Server 2008說明:BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 選項已廢止。使用完整恢復模式或大容量日誌恢復模式時,如果必須刪除資料庫中的日誌備份鏈,請切換至簡單恢復模式。有關詳細信息,請參閱有關從完整恢復模式或大容量日誌恢復模式切換的注意事項。

方法二:

useDB_NAME
sp_dboptionDB_NAME,"trunc.logonchkpt.",true
checkpoint
sp_dboptionDB_NAME,"autoshrink",true

方法三:(請提前備份文件!!)

  1. Detach資料庫。

  2. 刪除log文件。

  3. 附加資料庫,選移除log文件,此時SQL Server 會自動重新建立一個512K 的Log 文件。

方法四:

USEBigData;
GO
BACKUPLOGDATABASENAMETODISK='d: est.bak'
--.
DBCCSHRINKFILE(Bigdata_Log,1);
GO
熱點內容
b樹磁碟存儲 發布:2025-01-31 19:42:53 瀏覽:837
聯想小新air15怎麼配置環境 發布:2025-01-31 19:06:57 瀏覽:968
什麼配置玩3a 發布:2025-01-31 19:05:22 瀏覽:586
phpoa系統 發布:2025-01-31 18:58:42 瀏覽:10
值e的編程 發布:2025-01-31 18:57:06 瀏覽:977
安卓手機的軟體認證在哪裡 發布:2025-01-31 18:57:01 瀏覽:535
android彈出來 發布:2025-01-31 18:56:56 瀏覽:232
辦公室白領新解壓方法 發布:2025-01-31 18:55:23 瀏覽:558
摩斯密碼短長是什麼意思 發布:2025-01-31 18:50:17 瀏覽:587
類的訪問修飾 發布:2025-01-31 18:42:46 瀏覽:933