啪啪拉拉噼里啪啦

          初學者天堂資料匯集

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            16 隨筆 :: 73 文章 :: 16 評論 :: 0 Trackbacks
          壓縮數據庫
          作者:unknown 更新時間:2005-03-17  
           



              數據庫在使用一段時間后,時常會出現因數據刪除而造成數據庫中空閑空間太多的情況,這時就需要減少分配給數據庫文件和事務日志文件的磁盤空間,以免浪費磁盤空間。當數據庫中沒有數據時,可以修改數據庫文件屬性直接改變其占用空間,但當數據庫中有數據時,這樣做會破壞數據庫中的數據,因此需要使用壓縮的方式來縮減數據庫空間。可以在數據庫屬性選項中選擇“Auto shrink”選項,讓系統自動壓縮數據庫,也可以用人工的方法來壓縮。人工壓縮數據庫有以下兩種方式:

          1、用Enterprise Manager 壓縮數據庫
          在Enterprise Manager 中在所要壓縮的數據庫上單擊右鍵,從快捷菜單中的“所有任務(All Tasks)”中選擇“Shrink Database(壓縮數據庫)”選項,就會出現如圖6-10 所示的對話框。可以在圖6-10 所示的對話框中選擇數據庫的壓縮方式,也可以選擇使用壓縮計劃或壓縮單個文件。

          單擊圖6-10 中的“Files”按鈕,會出現如圖6-11 所示的壓縮數據庫文件對話框,可以針對每個數據庫文件進行不同的壓縮設置。


          單擊圖6-10 中的“Change” 按鈕,會出現如圖6-12 所示的壓縮計劃編輯對話框,可以指定壓縮計劃的執行方式。單擊圖6-12 中的“Change” 按鈕,會出現如圖6-13 所示的循環工作計劃編輯對話框,可以編輯計劃執行的周期或時間點。設置完成后單擊“OK” 按鈕就開始壓縮數據庫,在壓縮結束后會顯示一個壓縮情況信息框。



          2、用Transact-SQL 命令壓縮數據庫
          可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令來壓縮數據庫。其中DBCC SHRINKDATABASE 命令對數據庫進行壓縮,DBCC SHRINKFILE 命令對數據庫中指定的文件進行壓縮。

          (1) DBCC SHRINKDATABASE
          DBCC SHRINKDATABASE 命令語法如下:
          DBCC SHRINKDATABASE (database_name [, target_percent]
          [, {NOTRUNCATE | TRUNCATEONLY}] )
          各參數說明如下:

          • target_percent 指定將數據庫壓縮后,未使用的空間占數據庫大小的百分之幾。如果指定的百分比過大,超過了壓縮前未使用空間所占的比例,則數據庫不會被壓縮。并且壓縮后的數據庫不能比數據庫初始設定的容量小。
          • NOTRUECATE
            將數據庫縮減后剩余的空間保留在數據庫,中不返還給操作系統。如果不選擇此選項,則剩余的空間返還給操作系統。
          • TRUNCATEONLY
            將數據庫縮減后剩余的空間返還給操作系統。使用此命令時SQL Server 將文件縮減到最后一個文件分配,區域但不移動任何數據文件。選擇此項后,target_percent 選項就無效了。
            例6-14: 壓縮數據庫mytest 的未使用空間為數據庫大小的20%。
            dbcc shrinkdatabase (mytest, 20)
            運行結果如下:
            DBCC execution completed. If DBCC printed error messages, contact your system administrator.

          (2) DBCC SHRINKFILE
          DBCC SHRINKFILE 命令壓縮當前數據庫中的文件。其語法如下:
          DBCC SHRINKFILE ( {file_name | file_id }
          { [, target_size] |
          [, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )
          各參數說明如下:

          • file_id
            指定要壓縮的文件的鑒別號(Identification number, 即ID)。文件的ID 號可以通過 FILE_ID()函數或如本章前面所講述的Sp_helpdb 系統存儲過程來得到。
          • target_size
            指定文件壓縮后的大小。以MB 為單位。如果不指定此選項,SQL Server 就會盡最大可能地縮減文件。
          • EMPTYFILE
            指明此文件不再使用,將移動所有在此文件中的數據到同一文件組中的其它文件中去。執行帶此參數的命令后,此文件就可以用ALTER DATABASE 命令來刪除了。
            其余參數NOTRUNCATE 和TRUNCATEONLY 與DBCC SHRINKDATABASE 命令中的含義相同。
            例6-15: 壓縮數據庫mydb 中的數據庫文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)

           
          posted on 2005-04-07 14:17 噼里啪啦的世界 閱讀(294) 評論(0)  編輯  收藏 所屬分類: SQL SERVER
          主站蜘蛛池模板: 抚州市| 靖州| 任丘市| 曲松县| 宝丰县| 塔城市| 中西区| 手游| 紫金县| 五河县| 襄垣县| 黔南| 白银市| 天峻县| 德昌县| 美姑县| 民权县| 武安市| 平江县| 手游| 张家界市| 饶阳县| 广水市| 勐海县| 河间市| 新干县| 福建省| 宜城市| 隆安县| 都江堰市| 桓仁| 台南市| 米脂县| 南涧| 台江县| 宣恩县| 盱眙县| 海淀区| 开阳县| 都昌县| 肇源县|