如何使 Jet 4.0 資料庫保持在最佳狀態

文章翻譯 文章翻譯
文章編號: 303528 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

根據預設值,Microsoft Jet 是 Microsoft Access 所使用的資料庫引擎。本文將告訴您,可用來協助您將 Jet 資料庫保持在最佳狀態的最佳實務。本文將告訴您,在單一使用者環境和多重使用者環境下執行的資料庫。

最佳實務

不論您是資料庫的唯一使用者,或是有多重使用者在網路上使用資料庫,本節都可適用於所有的 Jet 資料庫。

確認已經安裝最新版的作業系統 Service Pack

請安裝最新版的作業系統 Service Pack。

如果要確認您的作業系統已安裝最新版的 Service Pack,請造訪下列 Microsoft 網站:
http://update.microsoft.com
如果您在網路環境中,請確定網路檔案伺服器具有最新版的作業系統 Service Pack。這樣就能確定網路檔案伺服器會對網路重新導向器和檔案系統提供最新的更新。

確認已經安裝最新版的 Microsoft Jet Service Pack

如需有關如何取得最新版 Jet 4.0 資料庫引擎的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
239114 如何取得 Microsoft Jet 4.0 資料庫引擎的最新版 Service Pack
如果您在網路環境中工作,就必須在所有用戶端電腦上安裝最新版的 Microsoft Jet Service Pack。除非已有一個或多個使用 Microsoft Jet 的應用程式在網路檔案伺服器中執行,否則您不必在網路檔案伺服器上安裝 Microsoft Jet Service Pack。

使用有效的資料庫設計

有效的資料庫設計不但可以提高資料庫的效能,也有助於降低檔案損毀的風險。 如需有關設計資料庫最佳實務的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
289533 找到使用 Access 設計資料庫的相關資訊

針對目前使用的 Jet 資料庫引擎版本,使用對應的 Jet 資料庫檔案格式

為了達成最佳的效能及穩定性,使用 Microsoft Jet 4.0 用戶端時,請使用 Microsoft Jet 4.0 格式的資料庫。同樣地,使用 Microsoft Jet 3.5 用戶端時,請使用 Microsoft Jet 3.0 格式的資料庫。

下表列出目前可供使用的 Jet 格式。下表也列出在使用 Jet 4.0 用戶端時,會使用何種轉譯器 dll 與 Jet 格式溝通:

摺疊此表格展開此表格
Access 版本Jet格式使用的轉譯器 Dll
Access 2.0Jet2.0Msrd2x40.dll
Access 95Jet3.0Msrd3x40.dll
Access 97Jet3.0Msrd3x40.dll
Access 2000Jet4.0
Access 2002Jet4.0
Access 2003Jet4.0

下表顯示 Microsoft Access 95 和 Access 97 建立 Microsoft Jet 3.0 格式的資料庫檔案。Access 2000、Access 2002 及 Office Access 2003 建立 Microsoft Jet 4.0 格式的資料庫檔案。當您使用 Microsoft Jet 4.0 用戶端時,請使用 Microsoft Jet 4.0 資料庫格式檔案來避免使用轉譯器 dll。如果您使用 Microsoft Jet 3.5 用戶端,我們建議您使用 Microsoft Jet 3.0 格式的資料庫。

下表列出最常使用的 Microsoft Jet 資料庫引擎用戶端,以及 Jet 資料庫引擎用戶端所使用的相關 Jet 資料庫引擎版本:

摺疊此表格展開此表格
用戶端應用程式使用的 Jet 資料庫引擎建議的 Jet 資料庫格式
Access 2.0Jet 2.0Jet 2.0
Access 95Jet 3.0Jet 3.0
Access 97Jet 3.5Jet 3.0
Access 2000Jet 4.0Jet 4.0
Access 2002Jet 4.0Jet 4.0
Office Access 2003Jet 4.0Jet 4.0
DAO 3.0Jet 3.0Jet 3.0
DAO 3.5Jet 3.5Jet 3.0
DA0 3.6Jet 4.0Jet 4.0
Microsoft.JET.OLEDB.3.51Jet 3.5Jet 3.0
Microsoft.Jet.OLEDB.4.0Jet 4.0Jet 4.0
Access ODBC 驅動程式Jet 4.0Jet 4.0
注意 在 MDAC 2.0 或先前版本中所包含的 Microsoft Access ODBC 驅動程式,都使用 Microsoft Jet 3.5。在 MDAC 2.1 及 MDAC 2.5 中包含的 Microsoft Access ODBC 驅動程式是使用 Microsoft Jet 4.0。MDAC 2.6 及更新的版本完全不包括 Microsoft Access ODBC 驅動程式。

在某些情況下 (例如,同時擁有共用相同資料庫檔案的新版和舊版 Jet 應用程式),您可能會無法使用最新的 Jet 資料庫檔案格式。這是因為舊版的 Jet 引擎無法讀取或寫入新版的 Jet 資料庫檔案格式。因此,您必須使用舊版格式並且使用轉譯器 dll。

不要在物件名稱和欄位名稱使用保留字和保留字元

當您命名資料庫中的物件和欄位時,請勿使用保留字和保留字元。單獨使用或與其他的字組合使用,卻由空格圍著的保留字或保留字元,有可能會造成資料庫損毀。

如需有關 Microsoft Access 保留字和保留字元的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
286335 List of reserved words in Access 2002 and Access 2003

定期壓縮您的 Microsoft Jet 資料庫

如果您經常變更資料庫,部分資料庫會變得過於分散。因此,請定期執行 Access 中的「壓縮資料庫」公用程式。如果您沒有 Access,依然可以使用 JetComp 公用程式來壓縮資料庫。

如需有關如何取得 Microsoft Jet 4.0 JetComp 公用程式的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
295334 ACC2002:Jet Compact 公用程式可在下載中心取得
壓縮資料庫的頻率取決於資料變更的程度。如果資料沒有經常變更,您就不需要經常壓縮。如果資料庫有經常變更,就請經常壓縮資料庫。雖然沒有正式規定壓縮資料庫的頻率,但我們依然建議您定期壓縮資料庫。

以下段落將告訴您,Microsoft Jet 用來壓縮資料庫的程序。

如需有關壓縮資料庫的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
288631 Defragment and compact database to improve performance
Microsoft Jet 資料庫引擎將 Access 資料庫檔案視為一連串的 4096 位元組區塊。這點就像一般檔案系統處理硬碟資料的方式。Microsoft Jet 資料表中所有的記錄都是透過這些區塊系列來儲存。每個區塊指向下一個區塊。每個區塊可以保存一或多筆記錄。一個區塊存有多少記錄,取決於每筆記錄中有多少欄位和資料。對資料表新增或刪除記錄時,資料庫檔案中的資料表區塊就會變得分散。

當您壓縮 Jet 資料庫時,就會重組這些區塊,並將每個資料表都置於連續的區塊範圍內。如此即可改進對於資料表的讀寫效能。

Access 資料庫中的索引也都儲存在 4096 位元組的區塊中。就像資料表記錄一樣,索引也會變得分散。

在壓縮 Jet 資料庫時,Jet 會更新儲存在資料庫中的資料表統計數據。其中一項重要的資料表統計數據,就是資料表中的記錄數目。如果資料表統計數據中的記錄數目,與資料表中實際的記錄數目差距太大,表示效能可能不好。例如,如果資料表統計數據指出資料表中的記錄數目不多,當 Jet 資料庫引擎執行搜尋或聯結時,Jet 資料庫引擎最佳化工具就不會在資料表上使用任何索引。如果記錄的數目較少,這種作法事實上會更有效率。不過如果有許多記錄,則是會減低效率。因此,如果您的資料庫會新增、刪除及更新大量的記錄,就請更常壓縮您的資料庫。

在壓縮資料庫的時候,Microsoft Jet 也會重新最佳化資料庫中的儲存查詢。這點會反映在更新的資料表統計數據中。因此,壓縮資料庫可改進儲存查詢的效能。

定期備份您的 Microsoft Jet 資料庫檔案

根據能夠承擔的遺失資料量,來定義對應的備份排程。例如,如果能夠承擔一天資料的遺失,就請每天備份。如果能夠承擔一週資料的遺失,就請每週備份。完整的資料庫檔案備份是確保當發生資料庫損毀的情況時,可以修復 Microsoft Jet 資料庫檔案的最佳方法。

重要 如果您在網路環境中,就必須先關閉所有的 Microsoft Jet 用戶端,才能備份 Microsoft Access 資料庫檔案。如果不這樣做,就可能會建立資料不完整或不一致的備份檔案。請定期測試備份檔案,以確定備份檔案是完好的。

確認已根據您的 Office 版本,安裝最新的 Service Pack

Microsoft 會定期提供 Microsoft Office 的 Service Pack 和更新程式。根據您的 Office 版本安裝最新的 Service Pack 或 Office 更新程式,以便增進與其他程式的互通性和效能。使用 Microsoft Office 更新網站自動安裝所有最新版的 Service Pack 和更新程式。如果要讓 Office 更新網站偵測出必須在電腦上安裝的更新程式,請造訪下列 Microsoft 網站:
http://office.microsoft.com/en-us/downloads/maincatalog.aspx
當 Office 更新網站偵測出需要的最新更新之後,您就會收到供您核准的建議更新清單。按一下 [開始安裝] 以安裝更新程式。

其他針對網路環境的最佳實務

Microsoft Jet 是一套檔案共用式資料庫系統。檔案共用式資料庫系統表示檔案的處理會在用戶端上進行。當檔案共用式資料庫 (例如 Microsoft Jet) 用於多重使用者環境時,多個用戶端程序便會透過網路,對相同的共用檔案進行檔案讀取、寫入及鎖定的作業。如果程序無法完成,就有可能將檔案留在不完整或是損毀的狀態。程序可能由於下列任何原因而無法完成:
  • 用戶端意外停止
  • 與伺服器的網路連線中斷
Microsoft Jet 並非設計來與高負荷、高同步化或每週七天且每天 24 小時不停運作的伺服器應用程式搭配使用。這類應用程式包括伺服器應用程式,例如 Web 應用程式、商務應用程式、異動應用程式,以及訊息伺服器應用程式。對於這些類型的應用程式,最佳的解決方案是轉換到真正的用戶端/伺服器資料庫系統,例如 Microsoft Data Engine (MSDE) 或 Microsoft SQL Server。當您在高負荷的應用程式中 (如 Microsoft Internet Information Server (IIS)) 使用 Microsoft Jet 時,就有可能遭遇下列問題之一:
  • 資料庫損毀
  • 穩定性問題,如 IIS 當機或鎖定
  • 驅動程式連線至需要重新啟動 IIS 服務的有效資料庫時,出現突發失敗或持續失敗
下列各節包含在網路檔案伺服器上共用 Microsoft Jet 或 Microsoft Access 資料庫檔案時,您應該遵循的建議。


網路檔案伺服器上的伺服器用戶端檔案鎖 (又稱 oplocks)


當檔案由兩個或更多個用戶端在網路檔案伺服器上共用時,伺服器用戶端檔案鎖就有可能增加 Jet 資料庫損毀的風險。這個問題會發生在 Microsoft Windows NT 4.0、Microsoft Windows 2000,以及支援伺服器用戶端檔案鎖的 Novell 檔案伺服器。這個問題也會發生在執行 Microsoft Windows NT 4.0、Microsoft Windows 2000 或 Microsoft Windows XP,並且連線到支援伺服器用戶端檔案鎖之檔案伺服器的用戶端。

注意:執行 Microsoft Office Access 2003 的用戶端必須具有 Windows 2000 SP3 或更新版本,或是 Windows XP 或更新的作業系統。

如果要避免這個問題,您必須將 Windows 2000 Service Pack 3 (SP3) 或更新版本,安裝到 Access 資料庫檔案所在的 Windows 2000 檔案伺服器上。然後,再將最新版的 Windows Service Pack 安裝到連接至 Windows 2000 檔案伺服器的每部 Windows 用戶端電腦。

如果要取得最新版的 Windows Service Pack,請造訪下列 Microsoft 網站:

Microsoft Windows Update
如果您在使用 Windows NT 4.0,或是不想安裝 Windows 2000 SP3 或更新版本,可以停用伺服器用戶端檔案鎖來避免這個問題。

重要 如果停用伺服器用戶端檔案鎖,就有可能對其他應用程式的效能造成不利影響。如果您有關於這方面的問題,請與 Microsoft Windows 技術支援處連絡。

如需有關在 Windows NT 4.0 上停用伺服器用戶端檔案鎖的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
129202 PC Ext: Explanation of Opportunistic Locking on Windows NT
如需有關在 Windows 2000 上停用伺服器用戶端檔案鎖的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
296264 在 Windows 設定伺服器用戶端檔案鎖
如果要在 Novell 檔案伺服器上停用伺服器用戶端檔案鎖,我們建議您與 Novell 的技術支援處連絡。如需有關如何連絡 Novell 的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
65416 Hardware and Software Third-Party Vendor Contact List, A-K

60781 Hardware and Software Third-Party Vendor Contact List, L-P

60782 Hardware and Software Third-Party Vendor Contact List, Q-Z
Microsoft 提供協力廠商的連絡資訊,以協助您找出技術支援。此連絡資訊如果有變更,恕不另行通知。Microsoft 不保證此協力廠商連絡資訊的準確性。

共用 Microsoft Jet 資料庫時需要注意的事項

對於儲存在 Microsoft Windows 95 檔案共用、Microsoft Windows 98 檔案共用、或 Microsoft Windows Millennium Edition (Me) 檔案共用中的 Microsoft Jet 資料庫檔案,我們不建議您將之與 Windows NT 用戶端或 Windows 2000 用戶端共用。

如果您有一個混合式的電腦網路環境,其中有些電腦執行 Windows 95、Windows 98 或 Windows Millennium Edition,另一些電腦則執行 Windows NT 或 Windows 2000,而且您要與其他網路使用者共用資料庫,我們建議您在 Windows NT 伺服器或 Windows 2000 伺服器上儲存和共用資料庫檔案,並且停用伺服器用戶端檔案鎖。

如果您讓 Windows NT 用戶端電腦或 Windows 2000 用戶端電腦,共用儲存在 Windows 95 檔案共用、Windows 98 檔案共用或 Windows Millennium Edition 檔案共用上的檔案,就有可能發生損毀。即使在 Windows NT 用戶端或 Windows 2000 用戶端已經停用伺服器用戶端檔案鎖,依然可能發生這個問題。這個問題尚在研究中,如果有進一步的資訊,Microsoft 會在本文中公佈。

注意:執行 Microsoft Office Access 2003 的用戶端必須具有 Windows 2000 SP3 或更新版本,或是 Windows XP 或更新的作業系統。

使用耐用的檔案伺服器

請確保您使用了耐用的檔案伺服器,以負荷大量使用者對 Microsoft Jet 資料庫檔案提出的大量要求。此外,請確定檔案伺服器不會因為處理其他程序 (像是做為 Windows 網域控制站、Exchange Server 或 SQL Server) 而發生超載。

如果您重新啟動伺服器以修正另一項重要服務的問題時 (例如,郵件服務),也會發生問題。當您在套用新軟體、Service Pack 或 Hotfix 之後重新啟動伺服器,卻忘記 Microsoft Jet 資料庫正在伺服器上共用時,也會發生問題。在檔案伺服器重新啟動時,用戶端對資料庫的連線意外中斷。如此可能造成資料庫的損毀。如果要防止用戶端連線中斷,所有的用戶端必須在檔案伺服器重新啟動之前,或是在套用檔案伺服器的軟體更新之前,先關閉資料庫。

檔案伺服器也必須放置在受到安全保護、不會被意外關閉的地方。這個伺服器必須有不斷電供電 (UPS,Uninterrupted Power Supply) 系統的保護,以防止電源間歇性中斷或電源不穩定的情況。網路檔案伺服器也必須具有下列設備:
  • 高效能的硬碟機
  • 高品質的網路卡
  • 大量的 RAM 以確定伺服器能夠處理負載

確認網路連線能力

請確定您擁有穩定且快速的網路,以及穩定地與網路檔案伺服器連線的能力。我們建議您不要以 WAN、數據機連線、FTP,或是較不可靠的網路傳輸方式來使用 Microsoft Jet。這是因為 Microsoft Jet 是一種檔案共用式資料庫系統,任何較不可靠的網路傳輸方式會增加用戶端連線中斷的機會。這也會增加資料庫損毀的機會。

將每個用戶端的連線數目最小化

我們建議您設計讓每個用戶端都使用一個 Microsoft Jet 資料庫連線。這是即使連線是來自同一個用戶端,Jet 資料庫也會將每個連線視為一個個別的用戶端。

如果要將效能和網路 I/O 最佳化,並降低後端資料庫的多重使用者負荷,請設計讓用戶端應用程式對於 Jet 資料庫使用單一連線。請視需要讓多重記錄集共用這個連線。這種做法還有一個好處,就是可以防止用戶端應用程式發生讀取和寫入的延遲。根據預設值,在兩個不同的 Jet 連線上寫入和讀取時,將值寫入資料庫之後,必須經過五秒鐘的延遲,才能讀取這個更新的值。即使兩個連線都位於相同的用戶端程序中,依然會發生這種情形。如果您使用單一連線,就可以避免這個問題。

使用 ADO 存取 Microsoft Jet 資料庫

從 ADO 存取 Microsoft Jet 資料庫時,我們建議您使用 Microsoft Jet OLE DB 提供者,而非 Microsoft Access ODBC 驅動程式。 如需有關此主題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
299974 Using Microsoft Jet with IIS

移到異動資料庫引擎以提高完整性

不同於檔案資料庫引擎,伺服器資料庫引擎 (例如,Microsoft SQL Server) 會處理多個用戶端對伺服器上某個資料庫所提出的所有要求。伺服器會使用異動記錄檔來追蹤所有要求。如果無法實現要求,伺服器便會退回要求,或是不處理該要求。這樣便會降低將資料庫留在不完整或損毀狀態的風險。

在將檔案資料庫引擎升級為伺服器資料庫引擎之前,必須先考慮這樣做的優點和缺點。 如需有關針對您的目的選擇最適合的資料庫引擎的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
168549 ACC97: Choosing the Appropriate Database White Paper Available in Download Center
注意 雖然這份白皮書是針對 Access 97 所寫,它的內容也適用於 Jet 4.0 及 Access 2000。

?考

如需有關資料庫已經損毀時應該如何處理的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
306204 How to troubleshoot corruption in a Microsoft Access database

304701 ACC2002:如何對 Microsoft Access 資料庫中的毀損問題進行疑難排解

824271 Description of troubleshooting corruption in an Office Access 2003 database


如需有關前篇文件所涵蓋主題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
200300 How To Synchronize Writes and Reads with the Jet OLE DB Provider and ADO
283849 ACC2002:如何修復和排解受損 Access 2002 資料庫的疑難
299974 Using Microsoft Jet with IIS
296264 在 Windows 設定伺服器用戶端檔案鎖
129202 PC Ext: Explanation of Opportunistic Locking on Windows NT
304408 How to shut down a custom Access application remotely
300216 How to keep a Jet 4.0 database in top working condition in Access 2000

屬性

文章編號: 303528 - 上次校閱: 2011年5月14日 - 版次: 7.0
這篇文章中的資訊適用於:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
關鍵字:?
kbhowtomaster KB303528
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