Sql-Server

我可以在 SQL 上壓縮一個巨大的表嗎?

  • September 28, 2017

在我的生產 SQL Server Enterprise Edition 數據庫 2014 上,我試圖找出數據文件 (.mdf) 日益增長的原因。

我從 Management Studio 獲得以下報告:右鍵點擊數據庫 > 報告 > 標準報告 > 頂級表格的磁碟使用情況。

我發現有些表包含超過 7000 萬行。一張表佔用超過 13625168 KB - 幾乎 12 GB!我該怎麼辦?

在此處輸入圖像描述

即使包含大量行,是否還有優化表的大小?

需要一些數據,其他數據僅用於歸檔目的。

更新

我可以壓縮巨大的桌子嗎?

由於您使用的是 SQL Server 2012 Standard,因此您無法利用DATA COMPRESSION。在 SQL Server 2016 SP1 之前,它是企業功能。當您能夠升級時,您應該檢查該功能。’除了節省空間外,數據壓縮還有助於提高 I/O 密集型工作負載的性能,因為數據儲存在更少的頁面中,並且查詢需要從磁碟讀取的頁面更少。'

但是,您現在可以做一些事情來減少數據庫的大小。尋找佔用空間最多的桌子,然後…

  • 歸檔(和刪除)不必駐留在數據庫中的任何數據。之後,在任何受影響的表上重建索引,以便您可以將數據合併到更少的頁面中。
  • 如果您還沒有這樣做,請考慮將索引的填充因子增加到 100%。讓您的頁面盡可能滿可以減少所需的整體空間,需要更少的記憶體頁面。之後,在任何受影響的表上重建索引,以便您可以將數據合併到更少的頁面中。查看索引填充因子是否會影響碎片?
  • 嘗試查找未使用或冗餘的索引。如果沒有使用索引,它只是無緣無故地佔用數據庫中的空間。同樣,您可以將幾個冗餘索引合併為更少的索引。通過搜尋“ sql server 未使用的索引”,有許多免費工具和查詢可用。我個人最喜歡的是sp_BlitzIndex

引用自:https://dba.stackexchange.com/questions/186880