簡體   English   中英

SQL Server表> MS Access本地副本?

[英]SQL Server Table > MS Access Local Copy?

我正在尋找一些建議。

我有一些SQL Server表,我需要移到本地Access數據庫來執行一些本地生產任務-每次“作業”設置一次,此qtr有400個作業,需要十幾個用戶...

一點背景:

  1. 我目前正在使用一種不使用DSN的方法來避免發行問題

  2. 我可以創建到遠程表的臨時LINKS並運行“ make table”查詢來填充本地表,然后刪除遠程表。 可以正常工作。

  3. 在美國的表現很不錯-大約40K記錄需要10-15秒。 對於相同的數據集,我們的印度團隊發現> 5-10分鍾。 他們的互聯網連接不錯,不是很好,而且是我無法控制的變量。

  4. 我想知道MS Access是否在這里增加了一些開銷,而這是通過更直接的方法可以避免的:即,讓服務器執行所有/大部分繁重的vs Access任務?

我修改了各種組合,沒有明顯的改善或成功:

  • Access中的參數化存儲過程
  • 來自Access的SQL Passthru查詢
  • ADO與DAO

有什么建議或建議的整體方法嗎? 如何將數據移動為XML?

注意:我有Access 7、10、13個用戶。

謝謝!

尚不完全清楚,但是如果執行轉儲的MSAccess數據庫是本地的,而SQL Server數據庫是遠程的,則在Internet上,您必然會遇到連接的物理限制。

ODBC驅動程序不打算用於LAN之外的數據訪問,存在太多延遲。 當Access查詢數據時,它沒有打開流,而是獲取它的塊,等待要下載的數據,然后請求另一批。 這在LAN上是可以的,但會隨着長距離迅速降級,特別是當您考慮到美國和印度之間的通信可能具有大約200毫秒的延遲,並且您不能對此做太多的事情時,如果通信協議很閑聊,它會很快合並,所有這些都是在連接帶寬之上的,很可能遠低於您在LAN上獲得的帶寬。

更好的解決方案是在本地執行轉儲,然后在壓縮並壓縮后將生成的Access文件傳輸出去(例如,使用7z進行更好的壓縮)。 這很可能導致文件很小,幾秒鍾之內就可以輕松移動。

該過程很容易實現自動化。 最簡單的方法可能是每天自動執行此轉儲,並使其在FTP服務器或准備下載的內部網站上可用。

您也可以按需提供它,可能是通過運行在服務器上的應用程序,也可以是通過使用Windows 2008服務器上的RDP服務通過RemoteApp或僅通過網站或外殼程序來使它可用。
您還可以在SQL Server上有一個簡單的Windows服務,該服務偵聽安裝在各處的本地計算機上對遠程客戶端的請求,該服務將處理轉儲並將其發送給客戶端,然后將其解壓縮並替換以前下載的數據庫。

盡管有很多解決方案可能需要進行大量工作才能可靠地實現自動化,但仍有很多解決方案。

最后一點說明:如果將數據從SQL Server自動轉儲到Access,請避免以自動化方式使用Access。 它很難調試,而且很容易破解。 請改用不依賴於安裝Access的導出工具。

Renaud和所有其他人,感謝您抽出寶貴時間提供您的回復。 如您所述,互聯網性能是瓶頸。 我正是希望通過另一種方法來避免獲取數據塊(相對於連續的DL)。

或者,工作流正在發展以更好地利用時鍾的兩個方面,即美國的User1在本地數據庫中完成日常工作,然后僅將其更新發送回服務器(基於時間戳)。 印度的User2也有同一個DB的本地副本,因此他一天之初就只從服務器上獲取更新的記錄。 因此,對於日常工作非常有效。

主要問題是來自服務器(巨大的多年數據庫)的當前“工作”的本地數據庫表的初始DL-應該在工作開始時(一次大約1周的漫長過程)僅發生一次。印度需要5到10分鍾才能完成。

目前,我們確實每天通過FTP來回移動數據庫。 它用作單個共享數據庫,由於臨時表的原因,它有點大。 我希望我的基於時間戳的新推挽式推銷僅僅是每天的變化,這將是一個整體優勢。 似乎可以,但是最初的DL障礙仍然存在。

暫無
暫無

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

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