壓縮資料庫
企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇 "自動收縮 "
『貳』 哪種命令可以用來壓縮資料庫容量
資料庫在使用一段時間後,時常會出現因數據刪除而造成資料庫中空閑空間太多的情況,這時就需要減少分配給資料庫文件和事務日誌文件的磁碟空間,以免浪費磁碟空間。當資料庫中沒有數據時,可以修改資料庫文件屬性直接改變其佔用空間,但當資料庫中有數據時,這樣做會破壞資料庫中的數據,因此需要使用壓縮的方式來縮減資料庫空間。可以在資料庫屬性選項中選擇「Auto shrink」選項,讓系統自動壓縮資料庫,也可以用人工的方法來壓縮。人工壓縮資料庫有以下兩種方式:
1、用Enterprise Manager 壓縮資料庫
在Enterprise Manager 中在所要壓縮的資料庫上單擊右鍵,從快捷菜單中的「所有任務(All Tasks)」中選擇「Shrink Database(壓縮資料庫)」選項
、用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 選項就無效了。
壓縮資料庫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 命令中的含義相同。
例: 壓縮資料庫mydb 中的資料庫文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)
『叄』 SQL資料庫如何壓縮
1、首先從開始菜單著手,打開開始菜單欄,在菜單欄上找到我們已經安裝的SQL server 2008,單擊打開它。
『肆』 如何在ACCESS中壓縮當前資料庫
1、首先,打開一個Microsoft Office Access軟體管理,資料庫界面當中。
『伍』 MS SQL2000資料庫太大了 如何壓縮
具體方法有3種。
方法一:
第一步:
backup log database_name with no_log
或者 backup log database_name with truncate_only
-- no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以。
第二步:
1.收縮特定資料庫的所有數據和日誌文件,執行:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比。
2.收縮一次一個特定資料庫中的數據或日誌文件,執行
dbcc shrinkfile(file_id,[,target_size])
-- file_id是要收縮的文件的標識 (ID) 號,若要獲得文件 ID,請使用 FILE_ID 函數或在當前資料庫中搜索 sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc shrinkfile 將文件大小減少到默認文件大小。兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思查看聯機幫助.
方法二:
第一步:
先備份整個資料庫以備不測 。
第二步:
備份結束後,在Query Analyzer中執行如下的語句:
exec sp_detach_db yourDBName,true
--卸除這個DB在MSSQL中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在Query Analyzer中執行如下的語句:
exec sp_attach_single_file_db yourDBName,'
d:\mssql\data\yourDBName_data.mdf '
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。
方法三:
1. 進入企業管理器,選中資料庫,比如demo
2. 所有任務->分離資料庫
3. 到資料庫文件的存放目錄,將MuOnline_log.LDF文件刪除,以防萬一,你可以拷出去
4. 企業管理器->附加資料庫,選muonline,這個時候你會看見日誌文件這項是一個叉,不要緊,繼續,此時資料庫就會提示你該資料庫無日誌是否創建一個新的,確定就是了。
5. 記得資料庫重新附加後用戶要重新設置一下。
如果以後,不想要它變大:
SQL2000下使用:
在資料庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型。
或用SQL語句:
alter database 資料庫名 set recovery simple
『陸』 怎樣壓縮SQL資料庫
打開企業管理器,選擇你想要壓縮的資料庫,用右鍵點擊,上面是有壓縮那個選項的
『柒』 如何在access中壓縮當前資料庫
如果想壓縮資料庫,可以在左上角Office圖標--->管理---->壓縮和修復資料庫。
如圖所示,會在右下角顯示正在壓縮,按Esc鍵停止壓縮。
『捌』 如何壓縮Access資料庫
Microsoft的Access繼承了一些FoxBase DBF的特點,個人估計是DBF的改進,比如FoxBase說在刪除數據後其實並沒有真正刪除,只是加上一個刪除標記,在需要的時候可以用Recall命令恢復這些數據,如果想徹底刪除,首先需要獨占訪問數據表,然後使用Pack命令來清除這些已經被刪除的數據,可以稱之為「壓縮」數據表。 Access也是一樣,如果是文本和數字等一般數據恐怕不太明顯,如果是OLE對象,加入後MDB文件大小會劇增,而在刪除這些數據行後文件大小並沒有相應減少,日積月累這些無用的數據不光佔用了大量硬碟空間,而且也會降低資料庫的訪問效率,這時已經沒有Pack命令可用了,但可以使用Access的「壓縮和修復資料庫」(在「工具」菜單中)來將那些無用的數據清除掉。如果你的程序使用Access作為資料庫,使用菜單命令來「壓縮資料庫」肯定是不太合適的,況且有時候需要自動來完成這個操作,所以我們需要把它用代碼來完成,需要調用COM對象的方法,壓縮後的資料庫被保存為另外一個文件,再把原文件刪除(其實Access自己也是這么做的),代碼如下:#include "objbase.h" //牽涉到COM對象,必須包含此頭文件AnsiString srcmdb="c://test.mdb"; //原文件名(壓縮之前)
『玖』 壓縮access資料庫的原理
1.首先你要了解資料庫變大的原因:隨著您不斷添加、更新數據以及更改資料庫設計,資料庫文件會變得越來越大。導致增大的因素不僅包括新數據,還包括其他一些方面:
(1)Access 會創建臨時的隱藏對象來完成各種任務。有時,Access 在不再需要這些臨時對象後仍將它們保留在資料庫中。
(2)刪除資料庫對象時,系統不會自動回收該對象所佔用的磁碟空間。也就是說,盡管該對象已被刪除,資料庫文件仍然使用該磁碟空間。
隨著資料庫文件不斷被遺留的臨時對象和已刪除對象所填充,其性能也會逐漸降低。其症狀包括:對象可能打開得更慢,查詢可能比正常情況下運行的時間更長,各種典型操作通常似乎也需要使用更長時間。
2.所以,壓縮資料庫並不是壓縮數據,而是通過清除未使用的空間來縮小資料庫文件。
3.壓縮資料庫可以防止資料庫變大而引起的執行性能變慢,防止因此造成的資料庫損壞。