簡體   English   中英

如果我收縮它,數據庫(SQL Server 2005)的性能是否會降低?

[英]Does performance of a database (SQL Server 2005) decrease if I shrink it?

如果我收縮它,數據庫(SQL Server 2005)的性能是否會降低?

應用縮小時mdf和ldf文件究竟發生了什么(Internals ???)

縮小數據庫時,它將消耗資源來縮小數據庫。 遇到問題的地方是數據庫需要再次增長,並且假設您已經設置了自動增長,它將消耗更多資源來自動增長。 恆定的自動收縮(或作為維護計划的一部分收縮)將導致物理磁盤碎片。

如果啟用了自動增長並將其設置為默認值1MB,則常量自動增長將消耗大量資源。

最佳做法是將數據庫的大小調整為合適的大小,預期的初始大小加上一段時間(月,年,您認為合適的任何時期)的預期增長。 您不應使用自動收縮或使用收縮作為維護程序的一部分。

您還應將自動增長設置為MB(不是數據庫的百分比,因為自動增長時需要首先計算%,然后增長數據庫)。 您還應該將自動增長設置為合理的數量,以確保它不會每10分鍾增長一次,並嘗試每天增加1或2個增長。

您還應該考慮為SQL Server設置即時初始化。

祝好運,

馬特

了解縮小數據庫時,重要的是要重新排列頁面。 數據文件末尾的頁面將移動到文件開頭的開放空間,而不考慮碎片。

聚簇索引確定表中數據的物理順序。 因此,假設您剛剛創建了一個聚簇索引,它會在物理上重新排序該表中的數據。 那么,當你執行一個收縮命令時,在創建聚簇索引期間剛剛整齊排序的數據現在可能會出現故障,這將影響SQL有效使用它的能力。

因此,無論何時進行縮減操作,都有可能影響所有后續查詢的性能。 但是,如果在收縮后重新執行聚簇索引/主鍵,則有助於對收縮操作期間可能引入的大部分碎片進行碎片整理。 如果性能至關重要,但您也不得不經常收縮,那么在理想的世界中,您需要在每次收縮操作后重新執行索引。

是的它可能會影響性能。 當數據庫運行時,它並不關心其磁盤空間的使用,更多關於有效的數據檢索/持久性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM