『壹』 如何在access中壓縮當前資料庫
如果想壓縮資料庫,可以在左上角Office圖標--->管理---->壓縮和修復資料庫。
如圖所示,會在右下角顯示正在壓縮,按Esc鍵停止壓縮。
『貳』 MS SQL2000資料庫太大了 如何壓縮
--壓縮日誌及資料庫文件大小 /*--特別注意 請按步驟進行,未進行前面的步驟,請不要做後面的步驟 否則可能損壞你的資料庫. 一般不建議做第4,6兩步 第4步不安全,有可能損壞資料庫或丟失數據 第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復. --*/ --下面的所有庫名都指你要處理的資料庫的庫名 1.清空日誌 DUMP TRANSACTION 庫名 WITH NO_LOG 2.截斷事務日誌: BACKUP LOG 庫名 WITH NO_LOG 3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小 企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件 --選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 --選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了 也可以用SQL語句來完成 --收縮資料庫 DBCC SHRINKDATABASE(庫名) --收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles DBCC SHRINKFILE(1) 4.為了最大化的縮小日誌文件(如果是sql 7.0,這步只能在查詢分析器中進行) a.分離資料庫: 企業管理器--伺服器--資料庫--右鍵--分離資料庫 b.在我的電腦中刪除LOG文件 c.附加資料庫: 企業管理器--伺服器--資料庫--右鍵--附加資料庫 此法將生成新的LOG,大小隻有500多K 或用代碼: 下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。 a.分離 EXEC sp_detach_db @dbname = '庫名' b.刪除日誌文件 c.再附加 EXEC sp_attach_single_file_db @dbname = '庫名', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\庫名.mdf' 5.為了以後能自動收縮,做如下設置: 企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮" --SQL語句設置方式: EXEC sp_dboption '庫名', 'autoshrink', 'TRUE' 6.如果想以後不讓它日誌增長得太大 企業管理器--伺服器--右鍵資料庫--屬性--事務日誌 --將文件增長限制為xM(x是你允許的最大數據文件大小) --SQL語句的設置方式: alter database 庫名 modify file(name=邏輯文件名,maxsize=20)
『叄』 怎樣壓縮資料庫的日誌文件
具體方法有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
『肆』 sqlsever怎麼進行資料庫壓縮
是收縮還是壓縮。
如果是收縮資料庫,在資料庫的右鍵,任務,有個收縮功能。
如果是壓縮,在資料庫右鍵,屬性,資料庫選項上,啟動壓縮功能。
『伍』 怎樣壓縮和修復Access文件
Access軟體本身就具備壓縮和修復功能,如圖:
方法一:單擊 壓縮和修復資料庫 按鈕即可;
『陸』 怎樣壓縮SQL資料庫
打開企業管理器,選擇你想要壓縮的資料庫,用右鍵點擊,上面是有壓縮那個選項的
『柒』 如何在ACCESS中壓縮當前資料庫
1、首先,打開一個Microsoft Office Access軟體管理,資料庫界面當中。
『捌』 如何壓縮減少資料庫的大小
直接用acdsee的編輯器模式,點幾保存就可以了,它會跳出一個窗口,問你要不要壓縮,你點壓縮就行了,大小可以自己控制
『玖』 如何壓縮Mysql資料庫
壓縮表從名字上來看,簡單理解為壓縮後的表,也就是把原始表根據一定的壓縮演算法按照一定的壓縮比率壓縮後生成的表。
1.1 壓縮能力強的產品
表壓縮後從磁碟佔用上看要比原始表要小很多。如果你熟悉列式資料庫,那對這個概念一定不陌生。比如,基於 PostgreSQL 的列式資料庫 Greenplum;早期基於 MySQL 的列式資料庫 inforbright;或者 Percona 的產品 tokudb 等,都是有壓縮能力非常強的資料庫產品。
1.2 為什麼要用壓縮表?
情景一:磁碟大小為 1T,不算其他的空間佔用,只能存放 10 張 100G 大小的表。如果這些表以一定的比率壓縮後,比如每張表從 100G 壓縮到 10G,那同樣的磁碟可以存放 100 張表,表的容量是原來的 10 倍。情景二:默認 MySQL 頁大小 16K,而 OS 文件系統一般塊大小為 4K,所以在 MySQL 在刷臟頁的過程中,有一定的概率出現頁沒寫全而導致數據壞掉的情形。比如 16K 的頁寫了 12K,剩下 4K 沒寫成功,導致 MySQL 頁數據損壞。這個時候就算通過 Redo Log 也恢復不了,因為幾乎有所有的關系資料庫採用的 Redo Log 都記錄了數據頁的偏移量,此時就算通過 Redo Log 恢復後,數據也是錯誤的。所以 MySQL 在刷臟數據之前,會把這部分數據先寫入共享表空間里的 DOUBLE WRITE BUFFER 區域來避免這種異常。此時如果 MySQL 採用壓縮表,並且每張表頁大小和磁碟塊大小一致,比如也是 4K,那 DOUBLE WRITE BUFFER 就可以不需要,這部分開銷就可以規避掉了。查看文件系統的塊大小:
root@ytt-pc:/home/ytt#tune2fs-l/dev/mapper/ytt--pc--vg-root|grep-i'blocksize'Block size: 4096
壓縮表的優點非常明顯,佔用磁碟空間小!由於佔用空間小,從磁碟置換到內存以及之後經過網路傳輸都非常節省資源。
簡單來講:節省磁碟 IO,減少網路 IO。
當然壓縮表也有缺點,壓縮表的寫入(INSERT,UPDATE,DELETE)比普通表要消耗更多的 CPU 資源。
壓縮表的寫入涉及到解壓數據,更新數據,再壓縮數據,比普通表多了解壓和再壓縮兩個步驟,壓縮和解壓縮需要消耗一定的 CPU 資源。所以需要選擇一個比較優化的壓縮演算法。
這塊是 MySQL 所有涉及到壓縮的基礎,不僅僅用於壓縮表,也用於其它地方。比如客戶端請求到 MySQL 服務端的數據壓縮;主從之間的壓縮傳輸;利用克隆插件來復制資料庫操作的壓縮傳輸等等。
從下面結果可以看到 MySQL 支持的壓縮演算法為 zlib 和 zstd,MySQL 默認壓縮演算法為 zlib,當然你也可以選擇非 zlib 演算法,比如 zstd。至於哪種壓縮演算法最優,暫時沒辦法簡單量化,依賴表中的數據分布或者業務請求。