Database

需要幫助訪問具有前端和後端的數據庫在超過 1 個使用者的情況下真的很慢

  • March 18, 2022

我們有一位顧問為一個基於 Access 2007 的客戶端安裝了一個數據庫,它有一個前端(在每個工作站上),我猜是數據庫後端(在文件伺服器上,它是一個伺服器 2003 域控制器,具有非常目前的硬體,記憶體等…)。

當我們從工作站啟動數據庫時,我們會看到典型的登錄螢幕,當使用者登錄並且數據庫界面上只有一個使用者時,整個過程非常快速,擊鍵非常快速等等。

一旦另一個使用者登錄到數據庫界面或程序,一切都會緩慢地潛在停止。欄位框中的擊鍵需要永遠出現,例如,如果您輸入單詞“find”,f 會出現,然後大約 10 秒後會出現“i”,然後 10 秒後會出現“n”,然後是“d”。

目前向我們出售數據庫的公司建議採用試錯法,我對入侵伺服器上的系統資料庫不感興趣,只是為了看看它是否有所作為。

由於我沒有時間或對數據庫感興趣,因此我迫切需要幫助,此時歡迎所有建議。

請注意,網路從佈線到交換機到其他連接沒有問題。使用任何工作站進行文件伺服器瀏覽和打開文件、電子郵件、網際網路等都非常快速。唯一停止正常工作的是數據庫。

歡迎使用基於 Microsoft Access 的數據庫,以及一般的共享文件數據庫“技術”。值得慶幸的是,今天的問題主要與速度有關(而以前的 Windows 作業系統版本可能會發生徹底的數據損壞)。

您會看到巨大的減速,因為當多個客戶端訪問同一個數據庫文件時,伺服器必須更加小心地向客戶端授予鎖。當只有一個客戶端訪問文件時,伺服器可以允許客戶端獲取“機會鎖”並在本地記憶體更多數據。多個客戶端使伺服器電腦的情況更加嚴格,因為必須保持客戶端之間關於文件的明顯內容的一致性。

您可以通過在伺服器電腦上使用“伺服器服務”(LanManServer) 中的設置來獲得一些增量性能,但是您永遠不會看到多個使用者的性能與單個使用者相同.

如果您真的希望看到它表現良好,我建議您評估將後端數據庫“升級”為 SQL Express 或其他一些真正的客戶端/伺服器數據庫引擎的可能性。如果“後端”只是“前端”使用“連結表”功能訪問的表的集合,那麼它非常適合遷移到 SQL Express 實例。顧問只需使用SQL Server Migration Asstant for Microsoft Access 即可

除了作為客戶端/伺服器,因此速度更快,SQL Express 還將為您提供一種進行線上備份的好方法(當使用者積極使用數據庫時)。使用者可以“忘記”關閉應用程序,您仍然可以獲得備份,而使用 Access,後端文件將被“鎖定”並且無法進行備份。

您在後端使用 SQL Server / SQL Express 獲得的優勢列表太長,無法在此處列出,但我懷疑您的顧問不熟悉它們,因為他們沒有費心使用 SQL Server /SQL Express 以開始。如果您決定稍後擴展/增強應用程序,您可能需要考慮聘請另一位顧問。

引用自:https://serverfault.com/questions/162400