簡體   English   中英

如何從MS Access遷移到SQL Server 2005?

[英]How to migrate from MS Access to SQL server 2005?

我有一個VB.NET Windows應用程序,從MS Access數據庫中提取信息。 該應用程序的主要作用是以各種格式從Excel文件中提取信息,標准化文件布局並將其寫入csv文件。 該應用程序使用MS Access作為密鑰和交叉引用文件的源。

Windows應用程序使用類型化數據集進行數據庫之間的大部分用戶交互。 標准化在每台客戶機上完成。 應用程序不是......我怎么能這樣說......快:-)。

問題:將數據庫和應用程序遷移到SQL Server 2005的最佳方法是什么。我認為在SSIS包中編寫標准化代碼可能是個好主意。

進行此遷移的適當方法是什么?


該應用程序每周從250個excel文件中提取數據,每月大約800個文件,平均每個文件大約5000行。 有13種不同的文件格式標准化,並分為3種不同的標准格式。 申請需要25分鍾。 並且運行40分鍾取決於我們正在進行的數據運行。 95%的申請是標准化過程。 所有用戶都會選擇一些參數然后開始運行。

Microsoft提供了一個免費工具,用於將Access數據庫遷移到SQL Server。 升級后,您應該能夠將連接字符串更改為指向SQL Server。

您可能希望通過分析器運行您的應用程序,以確保Access數據庫確實會降低您的應用程序速度,而不是其他任何東西。 通過所有工作將其轉換為SQL服務器並且沒有任何內容可以顯示它將是一種恥辱。

Access upizing向導可以用作起點。

您可以在Access中將后端更改為帶有鏈接表的SQL Server,而無需更改前端。 然后,您可以修改前端,直接轉到SQL Server。

除非你非常重視Access,否則我懷疑它是你的瓶頸。

至於閱讀Excel文件,SSIS可以做到,但它可能不像你現在在VB.NET中使用的機制那樣可靠,如果你的VB.NET代碼有很多智能邏輯來處理學位輸入文件中的變化

至於將數據寫入CSV,SSIS很好,我發現SSIS是一個非常好的表現者。

如果您可以提供有關工作流的更多詳細信息以及用戶與數據庫交互的程度與程序提取配置的相關程度,則可能更容易幫助您的體系結構。

SSIS在運行時非常可配置(程序包在運行時稍微配置一下),並且在許多情況下它可以被編程為讀取各種Excel文件並將它們轉換為CSV,但它不像手上那樣可以配置。編碼系統。 也可以使用SSIS對象模型以編程方式生成包然后執行它們 - 這沒有包配置本身的一些限制,但是對象模型非常復雜。

確保范圍清晰:

  1. 使用.NET程序
  2. 驅動Access數據庫前端,使您可以
  3. 從許多Excel電子表格中提取數據,
  4. 適當地按摩數據,和
  5. 將結果保存在CSV文件中。

我們在談論什么樣的卷? 有多少客戶端,每個客戶端有多少個電子表格,每個電子表格有多少行(我認為單個電子表格最多可達32767個,對吧?我們談論了多長時間?

好像很多活動部件。 Access通常是一個非常好的工具(使用VBA)來自己完成這類工作。

對於精心設計的Access數據庫前端Excel來說,使用VBA完成整個過程似乎不足以提供主要的時間接收器。 如果您的替代方案涉及在每個客戶端上安裝和操作SQL Server(代替Access),如果管理員和操作開銷沒有增加,我會感到驚訝。

所以每周,每個客戶端:25分鍾250個文件=每個文件10個文件或6秒。

每月,每個客戶:40分鍾時800個文件=每個文件20個文件或3秒。

我的期望不到1秒。 每個文件(5000行)往返包括:
一個。 將xls導入或附加到mdb,
通過Access SQL轉換
C。 導出到csv

想到的唯一解釋是,.NET應用程序可能正在一次讀取,轉換和保存行。 那可能是這樣嗎?

如果轉換為SSIS,則可能會廢棄.NET應用程序,因為SSIS將要處理ETL(並保存)本身。 所以你基本上會重寫軟件。 但是,對於SSIS,您可能擁有比Access更好的資源。 但在我看來似乎有點矯枉過正。 然后BUt而不是VBA也可能是矯枉過正; 並且在VBA中重寫也是有效的。 我認為最少的工作就是看看你是否可以使用Access SQL執行整個ETL(並保存),並使用VBA進行腳本編寫,迭代目錄中的輸入文件或其他類似的東西。

我認為你至少可以對基本用例進行原型設計,並找出你是否可以很快找到現在花費的時間(正如之前的回復中所建議的那樣)。但是在重新開發針對目標的重建資源之前,這是值得的。錯誤的部分問題。 如果你可以擴展這些領域,我可能會指導你進一步。 但是Access非常適合這種事情,在(IMHO)比TAC + SSIS + .NET更低的TCO。

更不用說如果csv文件是真正的終點,我會感到驚訝,這可能在決定中發揮作用。 Excel數據真的不是在路徑上走得更遠嗎?

最后,一個25-40分鍾的過程,大概無人看管,可以在午休時間運行,並且基本上可以正常工作,這是多么令人反感?


筆記:

\n 每個星期    \n\n Excel文件250\n 分鍾25\n 分鍾/文件0.1\n 秒/文件6\n\n\n 每月   \n\n Excel文件800\n 分鍾40\n 分鍾/文件0.05\n 秒/文件3\n

暫無
暫無

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

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