如何最佳化 Windows 2000 和 Windows XP 用戶端上的 Office Access 與 Jet 資料庫引擎的網路效能

文章翻譯 文章翻譯
文章編號: 889588 - 檢視此文章適用的產品。
重要 本文包含有關修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和編輯登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986 Microsoft Windows 登錄說明
全部展開 | 全部摺疊

在此頁中

結論

當您在 Microsoft Windows 2000 或 Microsoft Windows XP 電腦上執行 Microsoft Jet 資料庫引擎的程式,例如 Microsoft Office Access,程式可能會顯示變慢,且對您的要求反應變弱。本文包含有關如何讓您最佳化 Windows 2000 和 Windows XP 電腦網路效能的資訊。這麼做可以讓 Office Access 和 Jet 資料庫引擎的程式反應更好。

簡介

從 Microsoft Windows NT 4.0 的作業系統升級至 Windows 2000 或 Windows XP Professional 的作業系統後,您可能會遭遇 Office Access 或 Jet 資料庫引擎程式效能降低的情況。例如,您可能會遭遇下列徵狀:
  • .mdb 檔開啟的時間比您預期的還久。
  • Access 執行查詢的時間比您預期的還久。
  • 根據 Access 連結資料表的表單開啟時間比您預期的還久。
  • Access 作業,例如「插入」的時間比您預期的還久。
  • 存取網路資源的程序所花的時間比您預期的還久。

其他相關資訊

Access 與 Jet 資料庫引擎程式的網路效能,需視下列條件而定:
  • 儲存 Access 後端資料庫的檔案伺服器的檔案系統設定。
  • 用戶端快取與最佳化的方法。
  • Access 或 Jet 資料庫引擎程式的例行工作和方法。

檔案伺服器最佳化

下列方法,說明如何最佳化儲存 Access 或 Jet 資料庫引擎的資料庫檔案伺服器效能。

使用 8.3 檔案命名慣例

如果資料庫檔案名稱大於八個字元,或資料庫所在的資料夾名稱大於八個字元,Access 會透過每一個新增查詢間的網路來呼叫 GetShortPathNameW 功能。

這種情況會發生於當檔案名稱和資料夾名稱大於 8.3 檔案命名慣例所指定的限制時。長的檔案和資料夾名稱會增加完成查詢所需的時間。 如果資料庫檔案或資料庫所在資料夾的名稱大於八個字元,請重新命名檔案或資料夾名稱。檔案和資料夾名稱必須小於等於八個字元,且副檔名必須小於等於三個字元。下列範例的資料庫路徑包含符合 8.3 慣例較短的檔案和資料夾名稱:
\Folder_1\Folder_2\AccessDb.mdb
下列範例的資料庫路徑使用較長的檔案和資料夾名稱:
\FolderForFirstDatabase\FolderForSecondDatabase\ThisIsA_BigDatabase.mdb
如需有關 Windows 中較長檔案名稱的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
226403 Short (8.3) File Names May Change When Copied
同樣地,如果您使用分割資料庫,可以將前端資料庫連結的檔案和資料庫名稱,替換成符合 8.3 命名慣例的同義名稱。例如,假設您資料庫路徑的檔案和資料夾名稱較長:
\FolderForFirstDatabase\FolderForSecondDatabase\ThisIsA_BigDatabase.mdb
您可以將前端資料庫的檔案和資料夾名稱,重新命名為較短而同義的名稱:
\Folder~1\Folder~2\Thisis~1.mdb
下列的範例,說明如何連結至路徑名稱較長且轉換為較短檔案名稱的資料庫:
Function mcrLink()

DoCmd.TransferDatabase acLink, "Microsoft Access", "\\ServerName\sharename\Folder~1\Folder~2\Thisis~1.mdb", acTable, "tblName1", "tblName1", False

End Function


如需有關如何將前端資料庫連結的檔案和資料夾名稱,替換為符合 8.3 慣例的同義名稱的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
891176 Slower performance in Access-based or Jet database-based programs after you upgrade from Windows NT 4.0 to Windows 2000 or to Windows XP
Microsoft 僅提供示範性的程式設計範例,不做任何明示或暗示的保證,其中包括 (但不限) 其適售性與適合某特定用途之暗示保證。本文假設您對於示範所用的程式設計語言,以及用來建立和偵錯程序的工具相當熟悉。Microsoft 技術支援工程師可以協助說明特定程序的功能,但無法修改這些範例以提供附加功能或建構程序來滿足您的特定需求。如果您的程式設計經驗有限,可以聯繫「Microsoft 認證夥伴」或撥打 Microsoft 收費諮詢熱線:(800) 936-5200。如需有關「Microsoft 認證夥伴」的詳細資訊,請造訪下列 Microsoft 網站:
https://solutionfinder.microsoft.com/
如需有關 Microsoft 已提供的支援選項的詳細資訊,請造訪下列 Microsoft 網站:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS

關閉共用違規延遲通知

您可以關閉共用違規延遲通知,以改善檔案伺服器效能。如果要這麼做,請在儲存 Access 或 Jet 資料庫引擎程式的資料庫檔案伺服器中,依照下列步驟執行。

警告 不當使用「登錄編輯程式」可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft 並不保證可以解決您不當使用「登錄編輯程式」所導致的問題。請自行承擔使用「登錄編輯程式」的一切風險。
  1. 按一下 [開始],再按一下 [執行],輸入 regedit,然後按一下 [確定]
  2. 找出下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  3. 用滑鼠右鍵按一下 [參數],指向 [新增],再按一下 [DWORD 值],輸入 SharingViolationDelay,然後按一下 ENTER

    注意 當您建立 SharingViolationDelay 子機碼項目時,預設值是指定為 0x0。這就是我們要的。

    如果 SharingViolationDelay 子機碼項目已經存在,請用滑鼠右鍵按一下 [SharingViolationDelay] 項目,再按一下 [修改],輸入 0,然後按一下 [確定]
  4. 用滑鼠右鍵按一下 [BITS],指向 [新增],按一下 [DWORD 值],輸入 SharingViolationRetries,然後按一下 ENTER

    注意 當您建立 SharingViolationRetries 子機碼項目時,預設值是指定為 0x0。這就是我們要的。

    如果 SharingViolationRetries 子機碼項目已經存在,請用滑鼠右鍵按一下 [SharingViolationRetries] 項目,再按一下 [修改],輸入 0,然後按一下 [確定]
  5. 結束 [登錄編輯程式]。
如需有關共用違規延遲通知的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
150384 Shared file access is delayed if the file is open on another computer

移動後端資料庫檔案至 NTFS 檔案系統磁碟區

如果 Access 或 Jet 資料庫引擎程式的資料庫位於檔案配置表 (FAT) 的磁碟區中,您可以將後端資料庫檔案移動至 NTFS 檔案系統磁碟區,以改善效能。 如需有關 NTFS 的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
100108 FAT、HPFS 與 NTFS 檔案系統總覽
如需有關如何移動 Access 或 Jet 資料庫引擎資料庫檔案的詳細資訊,請搜尋「Access 說明」中的<複製或移動 Access 檔案>。

停用自動產生短名稱

停用 NTFS 檔案系統上的自動產生短名稱。如果要這麼做,請在儲存 Access 或 Jet 資料庫引擎程式的資料庫檔案伺服器中,依照下列步驟執行。 警告 不當使用「登錄編輯程式」可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft 並不保證可以解決您不當使用「登錄編輯程式」所導致的問題。請自行承擔使用「登錄編輯程式」的一切風險。
  1. 按一下 [開始],再按一下 [執行],輸入 regedit,然後按一下 [確定]
  2. 找出下列登錄子機碼:
    HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\FileSystem
  3. 用滑鼠右鍵按一下 [NtfsDisable8dot3NameCreation],再按一下 [修改],輸入 1,然後按一下 [確定]
  4. 結束 [登錄編輯程式],然後重新啟動電腦。
注意 在如此變更後,使用短名稱的檔案格式仍可用於 32 位元的程式。然而,在您變更後才建立的長名稱檔案,就無法用於 16 位元的程式。

如需有關在 NTFS 中自動產生短名稱的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
121007 How to Disable the 8.3 Name Creation on NTFS Partitions
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
121007 How to Disable the 8.3 Name Creation on NTFS Partitions
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
210638 How to Disable Automatic Short File Name Generation
如果您的 Access 或 Jet 資料庫引擎資料庫檔案位於 Windows Server 2003 檔案伺服器上,您可以關閉檔案系統的別名功能。別名功能包含於 Windows Server 2003 中。此功能可讓多個短檔案名稱指涉到相同的檔案。停用檔案系統別名功能可以增加 Windows Server 2003 電腦上的伺服器服務快取,以改善效能。

重要 如果您的 Windows Server 2003 電腦使用檔案系統別名功能,例如裝載或重新分析點,則我們不建議您依照此程序執行。

如果要關閉檔案伺服器別名功能,請在儲存 Access 或 Jet 資料庫引擎資料庫的 Windows Server 2003 檔案伺服器上,依照下列步驟執行。

警告 不當使用「登錄編輯程式」可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft 並不保證可以解決您不當使用「登錄編輯程式」所導致的問題。請自行承擔使用「登錄編輯程式」的一切風險。
  1. 按一下 [開始],再按一下 [執行],輸入 regedit,然後按一下 [確定]
  2. 找出下列登錄子機碼:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  3. 用滑鼠右鍵按一下 [參數],指向 [新增],按一下 [DWORD 值],輸入 NoAliasingOnFileSystem,然後按一下 ENTER。
  4. 用滑鼠右鍵按一下 [NoAliasingOnFileSystem],再按一下 [修改],輸入 1,然後按一下 [確定]
  5. 結束 [登錄編輯程式],然後重新啟動電腦。

用戶端最佳化

下列方法,說明如何最佳化存取 Access 或 Jet 資料庫引擎資料庫的用戶端效能。

啟用進階檔案名稱快取

預設的情況下,Windows 2000 和 Windows XP 作業系統僅會快取短檔案名稱和短資料夾名稱。也就是說,檔案名稱和資料夾名稱必須符合 8.3 慣例。您可以在 Windows 2000 或 Windows XP 電腦上啟用進階快取,這樣就可以快取長檔案名稱和長資料夾名稱。這可以改善透過網路存取檔案的效能。

如需有關如何啟用 Windows XP Service Pack 1 和先前版本的進階快取詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
834350 在 Windows XP 中存取網路資源的速度比舊版的 Windows 還慢
如需有關如何在 Windows 2000 上啟用進階快取的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
843418 You may experience decreased performance when you access network resources or when you use Microsoft Access in Windows 2000
注意 Windows XP Service Pack 2 和 Windows Server 2003 已包含一種進階快取。然而,仍必須設定登錄子機碼 InfoCacheLevel,以達到效能最佳化。

最佳化 Windows XP 電腦的新增查詢

Windows XP 電腦會清除快取,並將整個資料庫寫入檔案伺服器,以促進產生每一個新增交易。您可以在 Windows XP 電腦上套用 Hotfix 和變更 Windows 登錄項目 DisableFlushOnCleanup,以最佳化新增查詢的效能。

如需有關如何最佳化 Windows XP 電腦中新增查詢的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
825433 Poor performance when you append data to a shared file-based database from a Windows XP-based client

最佳化 Access 或 Jet 資料庫引擎的例行工作和方法

下列建議可以改善 Access 或 Jet 資料庫引擎程式所使用的例行工作與方法的效能。
  • 使用分割資料庫設定。分割資料庫設定也稱為前端與後端資料庫設定。 如需有關如何設定分割資料庫的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    162522 ADT/ODE:Distributing a Split Database Application with ODE/ADT
  • 在用戶端電腦及檔案伺服器電腦上,安裝可用於您 Windows 作業系統的最新版 Service Pack。
  • 在用戶端電腦上安裝 Jet 4.0 Service Pack 8 或更新的版本。 如需有關如何取得用於 Jet 資料庫引擎的最新版 Service Pack 詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    239114 如何取得 Microsoft Jet 4.0 資料庫引擎的最新版 Service Pack
  • 將所有資料庫的前端電腦,設定為對後端資料庫檔案維持開放的連線。 如果要執行這項操作,請建立包含一個文字欄位和一筆記錄的後端資料庫檔案資料表。例如,建立設定如下列所示的資料表:
    資料表名稱:tblConnect
    欄位名稱:Field1
    資料類型:Text
    第一筆記錄:「連線」

    將此資料表連結至您的前端資料庫,並根據此資料表建立表單。以您啟動的例行工作,使用隱藏的表單來開啟資料庫。您的啟動例行工作可放入巨集或啟動表單中,如以下範例所示:
    DoCmd.OpenForm " tblConnect",acNormal ,,,,acHidden
    或者,您也可以開啟根據此資料表的記錄集。記錄集的變數必須在模組的全域宣告區段中宣告。它也必須在您結束前端資料庫前先關閉。
  • 當多個使用者連線至資料庫以存取資料項目時,請使用表單代替資料表。

最佳化資料庫效能的最佳操作

我們建議您依照下列操作執行,以取得最佳化的 Access 或 Jet 資料庫引擎程式效能:
  • 最佳化 Access 模組中使用大量資源 (例如迴圈) 的資料庫程式碼。如果要執行這項操作,請將迴圈碼包含在 BeginsTrans 與 CommitTrans 陳述式中,例如以下範例:
    BeginTrans Loop CommitTrans
    這能讓 Jet 資料庫引擎累積多重更新,並將它們寫成單一批次。 如需有關如何在 Access 模組中最佳化程式碼的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    208858 ACC2000:Optimizing for Client/Server Performance
  • 依預設,Windows 用戶端會啟用檔案鎖。請確定用戶端電腦並未啟用檔案鎖。 如需有關如何在 Windows 設定檔案鎖的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    296264 在 Windows 設定伺服器用戶端檔案鎖
    如需有關檔案鎖與效能的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    303528 HOW TO:保持 Jet 4.0 資料庫在最佳狀態
  • 使用對應的磁碟機而非 UNC 路徑,來連線至儲存 Access 或 Jet 資料庫引擎資料庫的檔案伺服器。
如果要最佳化資料庫效能,請考慮將您的 Access 或 Jet 資料庫引擎程式遷移至 Microsoft SQL Server。對於服務許多連線的主動式資料庫,用戶端/伺服端的模式比檔案伺服器模式更合適。使用 SQL Server 改善效能的成果可觀,且能增加穩固性。

?考

如需有關 Access、Jet 資料庫引擎與網路效能的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
275085 ACC2002:與子資料工作表相連結的資料表開啟速度比預期的慢
288631Defragment and compact database to improve performance
209126 ACC2000:如何最佳化 Microsoft Access 2000 中的查詢
288631 Defragment and compact database to improve performance
209126 ACC2000:如何最佳化 Microsoft Access 2000 中的查詢
290181 Slow performance when user opens an object with Name AutoCorrect enabled in Microsoft Access
240434 How To Improve Performance of Applications Using Jet 4.0
289533 找到使用 Access 設計資料庫的相關資訊
870753 Description of the Jet 4.0 Database Engine post-837001 hotfix package: July 21, 2004
303528 HOW TO:保持 Jet 4.0 資料庫在最佳狀態
208858 ACC2000: Optimizing for Client/Server Performance
239114 如何取得 Microsoft Jet 4.0 資料庫引擎的最新版 Service Pack
891176 Slower performance in Access-based or Jet database-based programs after you upgrade from Windows NT 4.0 to Windows 2000 or to Windows XP

屬性

文章編號: 889588 - 上次校閱: 2007年12月1日 - 版次: 2.5
這篇文章中的資訊適用於:
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows XP Media Center Edition
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium)
關鍵字:?
kbnetwork kbdatabase kbperformance kbopenfile kbhowto KB889588
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com