您目前已離線,請等候您的網際網路重新連線

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

Windows XP 支援已結束

Microsoft 於 2014 年 4 月 8 日結束對 Windows XP 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

Office 2003 支援已結束

Microsoft 於 2014 年 4 月 8 日結束對 Office 2003 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

Windows Server 2003 的支援已於 2015 年 7 月 14 日結束

Microsoft 已於 2015 年 7 月 14 日結束對 Windows Server 2003 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

重要 本文包含有關修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和編輯登錄的詳細資訊,請按一下下面的文件編號,檢視「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 知識庫」中的文件:
226403Short (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", FalseEnd Function


如需有關如何將前端資料庫連結的檔案和資料夾名稱,替換為符合 8.3 慣例的同義名稱的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
891176Slower 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 網站:如需有關 Microsoft 已提供的支援選項的詳細資訊,請造訪下列 Microsoft 網站:

關閉共用違規延遲通知

您可以關閉共用違規延遲通知,以改善檔案伺服器效能。如果要這麼做,請在儲存 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 知識庫」中的文件:
150384Shared file access is delayed if the file is open on another computer

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

如果 Access 或 Jet 資料庫引擎程式的資料庫位於檔案配置表 (FAT) 的磁碟區中,您可以將後端資料庫檔案移動至 NTFS 檔案系統磁碟區,以改善效能。 如需有關 NTFS 的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
100108FAT、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 知識庫」中的文件:
121007How to Disable the 8.3 Name Creation on NTFS Partitions
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
121007How to Disable the 8.3 Name Creation on NTFS Partitions
如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
210638How 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 知識庫」中的文件:
843418You 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 知識庫」中的文件:
825433Poor performance when you append data to a shared file-based database from a Windows XP-based client

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

下列建議可以改善 Access 或 Jet 資料庫引擎程式所使用的例行工作與方法的效能。
  • 使用分割資料庫設定。分割資料庫設定也稱為前端與後端資料庫設定。 如需有關如何設定分割資料庫的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    162522ADT/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 知識庫」中的文件:
    208858ACC2000:Optimizing for Client/Server Performance
  • 依預設,Windows 用戶端會啟用檔案鎖。請確定用戶端電腦並未啟用檔案鎖。 如需有關如何在 Windows 設定檔案鎖的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    296264在 Windows 設定伺服器用戶端檔案鎖
    如需有關檔案鎖與效能的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    303528HOW TO:保持 Jet 4.0 資料庫在最佳狀態
  • 使用對應的磁碟機而非 UNC 路徑,來連線至儲存 Access 或 Jet 資料庫引擎資料庫的檔案伺服器。
如果要最佳化資料庫效能,請考慮將您的 Access 或 Jet 資料庫引擎程式遷移至 Microsoft SQL Server。對於服務許多連線的主動式資料庫,用戶端/伺服端的模式比檔案伺服器模式更合適。使用 SQL Server 改善效能的成果可觀,且能增加穩固性。
参考
如需有關 Access、Jet 資料庫引擎與網路效能的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
275085ACC2002:與子資料工作表相連結的資料表開啟速度比預期的慢
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
Acc2002, Acc2003, Microsoft Access XP, Jet, NT4, NT4.0, Win2000, WinXP, InfoCacheLevel, DisableFlushOnCleanup
內容

文章識別碼:889588 - 最後檢閱時間:12/01/2007 01:57:37 - 修訂: 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
意見反應