ACCESS資料庫儲存大批量採集資訊的問題

2021-05-18 08:02:19 字數 803 閱讀 9462

由於工作需要,使用access資料庫儲存港口周圍ais裝置接收到的船舶資料。由於在全國很多港口有採集點,因此,資料量很大,每三分鐘儲存一次資料的話,那麼一次將有2000多新的船位資料。這些資料入庫後,資料庫檔案大小將新增1m到2m左右。根據這個頻率,乙個小時資料庫檔案將增加40m,一天就是960m。

為了提高資料庫效率,我對資料庫中儲存的船舶資料進行定時刪除,最多保留30萬條記錄。但是access中執行delete後,並沒有在空間上減少,而只是減少了表中的資料量,這樣,就達不到資料庫檔案變小的要求。

為了解決這個問題,從網上找到了通過寫**實現資料庫檔案壓縮的**。通過壓縮可以釋放delete後占用的空間。

實際的**如下:

bool cpetrelproview::compactdatabase()

catch(...)

ijetengineptr jet(__uuidof(jetengine));

bool bok = true;

tryelse

}catch(_com_error &e)

catch(...)

writelog("===完成資料庫壓縮===","compdb");

return bok;

}由於資料庫檔案壓縮必須將檔案壓縮成備份檔案,不能對乙個檔案直接壓縮。因此先將需要壓縮的檔案改名,然後壓縮成原檔名。這樣,乙個500m左右的資料庫檔案,只需要幾秒鐘就可以壓縮完成了。

但是當資料庫檔案壓縮完成後,再次連線資料庫進行資料插入等操作後,資料庫檔案將急速增大。這個過程應該是資料庫在恢復一些之前被壓縮掉的庫輔助資訊,如果開啟vc工程會產生一些輔助檔案一樣。

大批量刪除 如何解決大批量資料儲存的效能問題

一 背景在行業中所有基於實體的orm框架,均存在同乙個問題 在批量運算元據時,效能表現乏力。因為在批量儲存資料時,可能既包含新增的記錄,又包含更新或刪除的記錄,一般的orm框架必須為每一條記錄生成一條sql語句,然後一條一條的執行,這樣執行的效能非常差,而通常的優化方案是將資料分批儲存,但在資料量特...

Android資料庫大批量資料插入優化

對比在android中批量插入資料的3中方式對比 各插入1w條資料所花費的時間 1 乙個乙個插入 1 public static boolean insert sqliteopenhelper openhelper,4 returntrue 5 6 sqlitedatabase db null 7 ...

Oracle資料庫更新大批量資料案例

更新大批量資料的背景 使用者需要將vip的微信標識,傳給使用者的erp會員檔案中,已知存量資料約50w行資料,線下的微信標識資料我們開發提供了openid和erpid的csv檔案,erpid和線下的會員檔案id對應,需要將openid也更新到會員檔案裡。更新數量大致分為兩大步驟 一 將我們要更新的資...