SQL Server資料庫的壓縮處理

來源:互聯網
上載者:User

前兩天,所在的項目要發一個試用版給使用者,需要包含一些給客戶的示範資料。但由於產品是基於資料分析的,資料量很大,所以在空庫上重建立立資料的任務量很大,加上團隊的人手一直較為緊缺,故決定在之前用來測試的資料庫上做修改,刪除多餘的資料,並加上了一些展示資料。然而資料處理完成後,探索資料庫依然有400多MB,想將資料做一些壓縮處理,減少資料庫的大小。在此,將過程中用到的一些方法羅列出來。

 

  • 查看資料庫的空間使用方式 EXEC sp_spaceused,結果集中包含database_size(當前資料庫的大小,包括資料和記錄檔)、 unallocated space(未保留供資料庫物件使用的資料庫空間)、 reserved(由資料庫中對象分配的空間總量)、index_size(索引使用的空間總量)和unused(為資料庫中的對象保留但尚未使用的空間總量)
  • 收縮資料庫,DBCC SHRINKDATABASE和DBCC SHRINKFILE。此外,SQL Server 2008在表層級和索引層級上支援行和頁的壓縮,行壓縮主要是對使用可變長度儲存格式的資料類型和通過使用不儲存Null 字元的可變長度格式來儲存定長字串,對於資料為NULL和0的進行最佳化,使其不佔用儲存空間。頁壓縮按行壓縮、首碼壓縮、字典壓縮的順序進行,頁壓縮比行壓縮更好一些,不過代價是較高的CPU佔用率。
  • SSMS內建的資料匯入、資料匯出和產生指令碼的功能,不過資料匯出到一個建立的空的資料庫的的話不會將外鍵、索引的匯入,而是僅僅是資料的匯入
  • 利用SSMS Tools(第三方的一個外掛程式),提供了一些常用的功能,將資料庫或表中的所有資料產生插入的指令碼(Generate Insert Scripts)、在所有表中尋找某一資料等
  • 取消所有表的約束,全選複製,然後F5執行
    select 'alter table '+quotename(object_Name(parent_obj))+' nocheck CONSTRAINT all 'from sysobjectswhere Xtype='F';
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.