收縮資料庫有什麼作用,SQL資料庫收縮的工作原理是什麼

時間 2021-08-30 11:05:06

1樓:

收縮資料庫

資料庫中的每個檔案都可以通過刪除未使用的頁的方法來減小。儘管資料庫引擎會有效地重新使用空間,但某個檔案多次出現無需原來大小的情況後,收縮檔案就變得很有必要了。資料和事務日誌檔案都可以減小(收縮)。

可以成組或單獨地手動收縮資料庫檔案,也可以設定資料庫,使其按照指定的間隔自動收縮。

檔案始終從末尾開始收縮。例如,如果有個 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 語句時,可以將各個資料庫檔案收縮得比其初始大小更小。必須對每個檔案分別進行收縮,而不能嘗試收縮整個資料庫。

2樓:半邊枕

收縮資料庫就是把資料庫不需要或者沒有用的東西進行資源**,簡單的說就是資料庫壓縮,比如你資料庫的很大,你收縮下資料庫就不會有那麼大了,還有一個辦法就是刪除資料庫日誌,具體**:

exec sp_attach_single_file_db @name='資料庫名',@hysname='c:\program files\microsoft sql server\mssql.1\mssql\data\資料庫名.

mdf'

sql資料庫收縮的工作原理是什麼

3樓:匿名使用者

資料庫收縮的工作原理是:清理空白空間和日誌來實現。

空白空間:刪除表

版時,資料庫的空間不會自權動縮小,隨著建的表越來越多,刪除操作越來越多時候,資料檔案就會越來越多。

日誌:是記錄你歷史操作的,沒用的都可以清除。

4樓:匿名使用者

「模型」變為「簡單」對資料庫使用沒有影響,但是日誌記錄少了。日誌檔案的大小下降

專了。「收縮後檔案中屬的最大可用空間」保留多少空餘空間不收縮。

頁移至檔案起始位置、收縮檔案-檔案-壓縮頁,更好的收縮檔案,需要很長的時間。如果你用普通搜尋之後,檔案還是很大,而且有較多的空餘空間收縮不了,就可以用這個選項。

sql server 中的「收縮資料庫」是什麼意思? 10

5樓:

收縮資料庫

資料庫中的每個檔案都可以通過刪除未使用的頁的方法來減小。儘管資料庫引擎會有效地重新使用空間,但某個檔案多次出現無需原來大小的情況後,收縮檔案就變得很有必要了。資料和事務日誌檔案都可以減小(收縮)。

可以成組或單獨地手動收縮資料庫檔案,也可以設定資料庫,使其按照指定的間隔自動收縮。

檔案始終從末尾開始收縮。例如,如果有個 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,什麼是資料庫 微軟的SQL又是什麼

public sqlconn as adodb.connection 定義一個資料庫連線sqlconn on error goto handler 發生錯誤時跳轉到 handler標籤 set sqlconn new adodb.connection 例項化sqlconn sqlconn.curso...

sql資料庫和oracle資料庫哪個好

兄弟,聽我的。肯定學習oracle。原因 1 oracle是商用的最廣泛的關係型資料庫管理系統,廣泛應用於銀行 電信 電力 社保等各個領域。特別是對於unix和linux平臺,sqlserver怎麼用啊?我想你學習,肯定為了將來應用,或者工作,你的簡歷裡面寫oracle和sqlserver完全是不一...

sql資料庫連線不上,SQL資料庫連線不上

sql server 無法啟動並顯示錯誤 18456 症狀sql server 服務無法啟動,同時您可能會在 windows 事件檢視器中看到以下錯誤資訊 sqlserveragent could not be started reason unable to connect to server s...