A. SQLSERVER壓縮數據文件的用處有多大
1、確認大量佔用空間的對象(表格或索引)。然後通過歸檔歷史數據,先把空間釋放出來再壓縮數據文件
2、重建索引,把一些數據頁面重排一次,原先的頁面被釋放,所佔用的分區也被釋放,再去DBCC SHRINKFILE
B. SQLSERVER壓縮數據文件的用處有多大
前奏:前些天因為客戶那邊的問題(其實是盜版問題),只能使用免費的SQLSERVER EXPRESS版本express版本的SQLSERVER的整個資料庫的數據文件大小限制為4GB,就是說不管你用多少個文件組,多少個輔助數據文件ndf所有加起來都不能超過4GB(mdf+ndf)事務日誌文件大小沒有限制因為我們的資料庫只是使用了一個主數據文件GPOS.mdf和一個事務日誌文件GPOS.ldf 本人的解決思路:本人在想如果是這樣,到時候就收縮資料庫唄在網上查了一下資料:由於DBCC SHRINKDATABASE一次運行會同時影響所有的文件(包括數據文件和日誌文件),使用者不能指定每個文件的目標大小,其結果可能不能達到預期的要求。所以建議先做好規劃,對每個文件確定預期目標,然後使用DBCC SHRINKFILE來一個文件一個文件地做比較穩妥本來很開心的,網上資料都說使用DBCC SHRINKFILE來收縮文件,那這樣就不怕拉 (我不怕不怕拉~)但是,往下看那個資料:1、首先了解數據文件當前的使用情況收縮量的大小不可能超過當前文件的空閑空間的大小。如果想要壓縮資料庫的大小,首先要確認數據文件里的確有相應未被使用的空間。如果空間都在使用中,那就要確認大量佔用空間的對象(表格或索引)。然後通過歸檔歷史數據,先把空間釋放出來 2、主數據文件(primary file)是不能被清空的。能被完全清空的只有輔助數據文件 3、如果要把一個文件組整個清空,要刪除分配在這個文件組上的對象(表格或索引),或者把他們移到其他文件組上。DBCC SHRINKFILE不會幫你做這個工作把數據文件裡面數據和對象清除完、確認數據文件(組)有足夠的空閑空間後,管理員就可以使用DBCC SHRINKFILE來縮小或清空指定文件了。如果要縮小文件,就填上需要的target_size,如果要清空文件,就選擇EMPTYFILE 根據上面資料所說,本人的解決思路是:1、確認大量佔用空間的對象(表格或索引)。然後通過歸檔歷史數據,先把空間釋放出來再壓縮數據文件2、重建索引,把一些數據頁面重排一次,原先的頁面被釋放,所佔用的分區也被釋放,再去DBCC SHRINKFILE如果你們有其他解決方法希望你們告訴我,謝謝您們了!!
C. SQLSERVER壓縮數據文件的用處有多大
壓縮數據文件最大的好處就是節約磁碟空間。這個東西對於中小型資料庫而言,意義可能體現的並不明顯,但是如果放在大型或者超大型資料庫上,那麼價值就非常可觀了。
例如某大型資料庫,備份文件在沒有壓縮前,大小可能在500G左右,壓縮後大小大約在70G左右,可節約430G,而一個大型的IT企業,這種資料庫還並不是核心庫,核心庫會更大,並且還會伴隨多種高可用技術(更多的冗餘)。例如騰訊或者阿里巴巴或者網路,那麼多的業務,全國各地總伺服器加起來可能上百台甚至上千台,按300台DB Server計算,如果單台能節省430G存儲,300台Server可以節約125TB的存儲,這是非常可觀的一筆開銷。
D. SQL資料庫如何壓縮
可以使用DBCC
SHRINKDATABASE
和DBCC
SHRINKFILE
命令來壓縮資料庫。
其中DBCC
SHRINKDATABASE
命令對資料庫進行壓縮,DBCC
SHRINKFILE
命令對資料庫中指定的文件進行壓縮。
DBCC
SHRINKDATABASE
命令語法如下:
DBCC
SHRINKDATABASE
(database_name
[,
target_percent]
[,
{NOTRUNCATE
|
TRUNCATEONLY}]
)
各參數說明如下:
target_percent:
指定將資料庫壓縮後,未使用的空間占資料庫大小的百分之幾。如果指定的百分比過大,超過了壓縮前未使用空間所佔的比例,則資料庫不會被壓縮。並且壓縮後的資料庫不能比資料庫初始設定的容量小。
NOTRUECATE:
將資料庫縮減後剩餘的空間保留在資料庫,中不返還給操作系統
,如果不選擇此選項,則剩餘的空間返還給操作系統。
TRUNCATEONLY
:
將資料庫縮減後剩餘的空間返還給操作系統。使用此命令時SQL
Server
將文件縮減到最後一個文件分配,區域但不移動任何數據文件。選擇此項後,target_percent
選項就無效了。
E. SQLSERVER壓縮數據文件的用處有多大
本人的解決思路:
本人在想如果是這樣,到時候就收縮資料庫唄
在網上查了一下資料:由於DBCC SHRINKDATABASE一次運行會同時影響所有的文件(包括數據文件和日誌文件),使用者不能
指定每個文件的目標大小,其結果可能不能達到預期的要求。所以建議先做好規劃,對每個文件確定預期目標,然後使用DBCC SHRINKFILE
來一個文件一個文件地做比較穩妥
本來很開心的,網上資料都說使用DBCC SHRINKFILE來收縮文件,那這樣就不怕拉 (我不怕不怕拉~)
但是,往下看那個資料:
1、首先了解數據文件當前的使用情況
收縮量的大小不可能超過當前文件的空閑空間的大小。如果想要壓縮資料庫的大小,首先要確認數據文件里的確有相應未被使用的空間。如果空間都在
使用中,那就要確認大量佔用空間的對象(表格或索引)。然後通過歸檔歷史數據,先把空間釋放出來
2、主數據文件(primary file)是不能被清空的。能被完全清空的只有輔助數據文件
3、如果要把一個文件組整個清空,要刪除分配在這個文件組上的對象(表格或索引),或者把他們移到其他文件組上。
DBCC SHRINKFILE不會幫你做這個工作
把數據文件裡面數據和對象清除完、確認數據文件(組)有足夠的空閑空間後,管理員就可以使用DBCC SHRINKFILE來縮小或清空指定文件了。
如果要縮小文件,就填上需要的target_size,如果要清空文件,就選擇EMPTYFILE
根據上面資料所說,本人的解決思路是:
1、確認大量佔用空間的對象(表格或索引)。然後通過歸檔歷史數據,先把空間釋放出來再壓縮數據文件
2、重建索引,把一些數據頁面重排一次,原先的頁面被釋放,所佔用的分區也被釋放,再去DBCC SHRINKFILE
F. SQL資料庫如何壓縮
具體方法有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
G. 如何自動批量異地備份壓縮SQLSERVER資料庫
您好,很高興能幫助您,
使用GUI配置資料庫備份壓縮
1. 使用SQL Server管理套件連接到SQL Server 2008實例。
2. 在對象管理器中,右鍵單擊伺服器和選擇屬性來查看伺服器屬性窗口。
3. 在備份和恢復下,壓縮備份顯示了備份壓縮默認選項的當前設置。這個設置決定了伺服器級別對壓縮備份的默認:
如果沒有選壓縮備份,新的備份在默認情況下是不壓縮的。
如果選擇了壓縮備份,那麼新的備份在默認情況下會被壓縮。
4. 用戶需要是sysadmin 或serveradmin 固定伺服器角色的成員,來改變資料庫備份壓縮的默認設置。
你的採納是我前進的動力,還有不懂的地方,請你繼續「追問」!
如你還有別的問題,可另外向我求助;答題不易,互相理解,互相幫助!
H. 如何收縮sqlserver資料庫
你用資料庫管理器選中資料庫,先分離,然後再附加,然後再點收縮,收縮的時候先收縮日誌文件,一般能收縮很多,記得要填寫數字啊,比如上面提示能收縮為0,你就填個5兆,這樣預留一點空間,而且很快,收縮完日誌文件之後再收縮資料庫 同理比最小能收縮量大幾兆就可以了,但是收縮資料庫比較慢 需要很多時間
I. sqlserver 如何壓縮資料庫
你需要將日誌文件截斷後收縮
在查詢分析器里依次執行下面的語句就可以了,把「資料庫」替換成你實際的資料庫名
--首先截斷事務日誌
backup log 資料庫 with no_log
--收縮資料庫
dbcc shrinkdatabase('資料庫',0)