激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Access - Access數據庫過大問題的幾種解決方案

Access數據庫過大問題的幾種解決方案

2021-12-22 16:51Access教程網 Access

Access數據庫過大問題的幾種解決方案: 問題: 1、我的Access數據庫里面沒存多少數據,為什么體積很大,別人和我存一樣的數據為什么只有我的文件體積的1/10。 2、為什么我刪除了數據,但是數據庫體積沒有減小? 3、為什么我存了

Access數據庫過大問題的幾種解決方案:

問題:

1、我的Access數據庫里面沒存多少數據,為什么體積很大,別人和我存一樣的數據為什么只有我的文件體積的1/10。

2、為什么我刪除了數據,但是數據庫體積沒有減小?

3、為什么我存了幾張圖片到ole字段里面數據庫體積就變大,而且變大的速度超過圖片的總體積?

4、為什么我的數據庫沒有幾條記錄,體積就20多MB

5、每次體積變大后都要手動壓縮?有沒有辦法自動壓縮?

回答:

1、2、你只要在Access里面菜單 工具->數據庫實用工具 -> 壓縮修復數據庫 就可以了

原因是:Access在刪除記錄或者進行其他需要臨時數據的操作后,并不物理刪除這些無用數據,只有壓縮修復數據庫的時候才真正刪除。就象windows中將文件放進回收站中無法增加可用空間必須清空回收站是一個道理。

如何操作請參考以下 FLASH 動畫:

手動壓縮修復數據庫。

http://access911.net/down/eg/swf/rc.htm

http://access911.net/down/eg/swf/rc.swf

3、手動將文件插入ole字段的文件,實際保存在數據庫中時ole引擎會在文件數據的前面增加一段信息,用于讓ole引擎處理你放進去的文件,所以體積會變大。

4、請查看一下,你的數據庫里面是否有包含ole字段的表,ole字段可以存儲體積非常大的文件,導致體積增長很正常。再看一下你的數據庫中窗體、報表中有沒有嵌入使用圖片做背景。Access中的背景圖片全部是以bmp圖片格式存放的,即使你原先指定的是jpg格式,Access也會自動將文件格式轉換為bmp再存放。

無論是背景還是控件,只要有圖片,體積就會不正常地增大。還有,如果你的程序設計成運行時會使用大量臨時數據,用完了再刪除的,也會造成體積暴增。

5、可以設置退出時自動壓縮,步驟如下:

菜單 -> 工具 -> 選項 -> 常規關閉時壓縮 -> 前面打上勾

以上為轉貼,以下為原創。

上面的是幾種數據庫變大后的解決方案。

我想說的是如何防止數據庫變的如此大。

站在程序員的角度來說,所以不一定對各位站長有用。

只是或許可以給各位Asp+Access的程序作者一點小小的建議而已。。

采用多個數據庫,而不是一個數據庫。

可以大概指定一定范圍,例如從0到1W使用1號數據庫。

1W到2W使用2號數據庫。

如何使用?。。

con和rs定義多個。。

con1是一號數據庫的,con2是二號數據庫的。。

rs1是一號數據庫的,rs2是二號數據庫的。。

添加:

當數據達到XW條時使用新的conX和rsX。。

修改:

查詢要修改的ID號。。去指定是數據庫執行操作。

刪除:

同修改。

用這個有一個不是很好解決的地方。比如我要查詢用戶排行,查詢積分最大的10個用戶。

由于用的多個數據庫,而且用的多個rs。。

找到了兩種方法,各位依照喜好使用。

第一種:

Next

rsB.MoveNext

Wend

rs.UpdateBatch

End If

'返回合成后的新的記錄集

Set UnionRs = rs

End Function

'調用合并函數

Private Sub Command1_Click()

Dim rs As Recordset

Set rs = UnionRs(rsA, rsB) '合并rsA和rsB

Set DataGrid1.DataSource = rs

End Sub

第二種:

當記錄條數很多的時候,用循環的方法確實比較慢,比較快一點的,可以借助臨時表來做:

假設你的兩個數據庫位置為:C:\testA.mdb和C:\testB.mdb

Dim cnA As New ADODB.Connection, cnB As New ADODB.Connection, rs As New ADODB.Recordset

cnA.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TestA.mdb;User Id=admin;Password=;"

cnB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TestB.mdb;User Id=admin;Password=;"

cn.Execute ("select * into temp from tableA") '把tableA的數據插入到臨時表temp里(具體的查詢數據的語句自己改)

cn1.Execute ("INSERT INTO [C:\testA.mdb].temp SELECT * From tableB") 'tableB的數據追加testA的臨時表temp里(具體的查詢數據的語句自己改)

rs.Open "temp", cnA, adOpenDynamic, adLockReadOnly, adCmdTable

采用多個相同數據庫,訪問時隨機選擇數據庫。

這個相對來說方便一點,不過不會減少數據庫的體積,而是減少數據庫的連接數。

也在一定程度上減輕了數據庫的壓力。

靈感來自鏡像站點的訪問。

conn.asp(通常為數據庫文件)里面加個隨機數。。

例如有10個相同數據庫,那么隨機小于10的整數就OK。

這樣以前一個數據庫的壓力會分配給10個數據庫。

雖然不一定平均。。(如果你算法不錯,做到平均也不難)

記得后臺要有個克隆數據庫的操作選項,當然手工也可以。

OK。寫完了。希望對各位程序員有點小小的作用。

期望你們寫出更優秀的程序來。謝謝。

以上部分全文轉載無修改。前幾天采集了一個3萬6千數據,但是發現空閑的主機上已經沒有數據庫空間了,轉換為mdb后,產生了一個巨大的網站,現在經常宕機。

總而言之,如果使用access作為網站的數據庫,集中生產HTML頁面的時候,是很痛苦的。

  1. Private Function UnionRs(rsA As Recordset, rsB As Recordset) As Recordset 
  2. Dim rs As New Recordset, i% 
  3. For i = 0 To rsA.Fields.Count - 1 
  4. '設置記錄集標題列 
  5. rs.Fields.Append rsA.Fields(i).Name, rsA.Fields(i).Type, adFldMayBeNull + adFldIsNullable + adFldUpdatable 
  6. Next 
  7. '添加rsA到rs 
  8. If Not rsA.EOF Then 
  9. rsA.MoveFirst 
  10. If rs.State = adStateClosed Then rs.Open 
  11. While Not rsA.EOF 
  12. rs.AddNew 
  13. For i = 0 To rs.Fields.Count - 1 
  14. rs(i) = rsA(i) 
  15. Next 
  16. rsA.MoveNext 
  17. Wend 
  18. rs.UpdateBatch 
  19. End If 
  20. '添加rsB到rs 
  21. If Not rsB.EOF Then 
  22. rsB.MoveFirst 
  23. If rs.State = adStateClosed Then rs.Open 
  24. While Not rsB.EOF 
  25. rs.AddNew 
  26. For i = 0 To rs.Fields.Count - 1 
  27. rs(i) = rsB(i) 

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久免费视频一区 | 亚洲精品一区二区三区在线看 | 日韩视频在线一区二区三区 | www成人在线观看 | 久章草在线观看 | 久色成人网| 午夜精品一区二区三区免费 | 草久影院 | av免播放 | 黄色大片网站在线观看 | 亚洲3p激情在线观看 | 在线观看中文字幕av | 久久av免费| 欧美日韩亚洲一区二区三区 | 毛片大全 | 视频久久免费 | 黄色免费在线网站 | 一级电影免费在线观看 | 亚洲国产精品久久久 | xxxx69hd一hd72 | 成人午夜一区 | 久久蜜桃香蕉精品一区二区三区 | 毛片网站网址 | 中文字幕在线观看视频一区 | 91精品国产乱码久久久久 | 国产精品久久久久久久av三级 | 能看的毛片网站 | 日本网站一区二区三区 | 久久久久久久久久久久久久国产 | 国产一区二区观看 | 国产v综合v亚洲欧美久久 | 强伦女教师视频 | 国产午夜精品一区二区三区四区 | 在线视频观看一区二区 | 亚洲国产综合在线观看 | 欧美成人福利 | 桥本有菜免费av一区二区三区 | 国内xxxx乱子另类 | 精品国产九九九 | 欧美黄色一级片视频 | 男女亲热网站 |