簡體   English   中英

大型數據庫文件(mdb)需要花費一些時間才能加載到vb.net中,因此需要替代方法

[英]large database file (mdb) takes time to load in vb.net so need alternative

我在Access數據庫中有4k條記錄。 一個字段值包含〜100行,另一個字段包含〜25行。 因此,數據庫總大小約為30MB,使用odbc http://www.homeandlearn.co.uk/net/nets12p5.html將數據庫加載到vb.net中需要花費15-20秒的大量時間

由於數據庫很大,因此更新其他任何小字段也需要時間

因此,作為替代方案,我使用了rtf文件(txt文件未保留所有換行符)。 因此,這些文件只有5-10kb左右。 但是對於4k記錄和2個字段,我現在有8k文件。 復制這些8k rtf文件要花費大量時間才能進行5MB傳輸,這需要一個小時左右的時間。

因此,還有其他替代方法可用於存儲此數據。 這樣它便可以移植並可以輕松地從vb.net加載/訪問/更新嗎?

MDB數據庫

在此處輸入圖片說明

MDB是Access數據庫文件類型。 Access數據庫從未被設計用於Web系統的后端,它們主要用於輕型辦公室。

改善表現

為了暫時提高性能,您可以壓縮和修復數據庫。 打開它,然后在工具菜單中找到鏈接。 另外,您也可以編程 應當合理地頻繁地執行此操作,具體取決於數據庫對其進行的更改數量。 壓縮和修復有什么作用?

同樣,緩慢通常是設計效率低下的標志。 如果您的數據庫未完全規范化,請考慮閱讀數據庫規范化。 這將大大提高性能,這是應該學習的基本標准。

備擇方案

對於4k +記錄,您可能應該使用專門為大量數據設計的體面的數據庫系統。

SQL-Server是Microsoft提供的出色的數據庫系統。 MySQL也是一個很好的開源替代方案。 互聯網上充滿了有關如何連接到這些數據庫的教程。

我有時也在.net中使用Access數據庫。 好的,我知道MS-Access並不是此類應用程序的最佳數據庫。 但是,易於執行的復雜查詢以及功能齊全且眾所周知的報表使Access成為了一個不錯的成本效益解決方案。

我看到了您指示的鏈接。 這種方法是我的第一個技術,但是后來我意識到還有另一種更容易,更快的方法。 我建議您以其他方式進行Access數據庫的鏈接。

  1. 如果尚未創建數據集,請創建一個。
  2. 使用數據庫資源管理器創建與MS-Access數據庫的連接。
  3. 將所需的表拖放到創建的DataSet上(.net將在backStage中為您創建設計器代碼)
  4. 在代碼上,創建一個tableAdapter對象和一個表對象:假設您的dataSet名稱為DS1,表名稱為table01。

    語言:VB.NET檢查您的數據對象的智能感知自動完成

創建一個tableadapter對象和一個table對象(當您在數據集中刪除數據庫瀏覽器對象時設計)

dim table01_TA as new ds1Tableadapters.table01_tableAdapter
dim table01 as new ds1.table01dataTable

將數據庫數據加載到內存表table01中

table01 = table01_TA.getData

使用table01(添加,更新,插入,刪除,查詢)進行操作,以自動生成用於更新,插入和刪除的腳本,確保您的表具有primaryKeys和正確的關系。 最后,更新表適配器。 除非您這樣做,否則不會在數據庫中更新數據。

table01_Ta.update(table01)

建議您使用LINQ查詢數據,並使用datatable方法添加和編輯數據。 當將dataExplorer表放在dataSet上並保存時,將自動創建這些方法。 值得經常壓縮和修復Access數據庫。

如果遇到麻煩,請與我聯系。

我同意湯姆的建議。 讓自己成為一個不錯的數據庫服務器。 但是,從對性能問題的描述來看,您似乎還有其他嚴重的問題,在這里可能很難解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM