本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
JD Edwards EnterpriseOne 在 SQL Server 上的行為概觀
EnterpriseOne 業務邏輯主要在應用程式中處理。只有基本的資料處理語言 (DML) 陳述式從應用程式傳遞到資料庫。在標準處理中,會在資料庫上開啟記錄集,但由應用程式管理。然後,應用程式通常會針對記錄集中的每個記錄執行多個 DML 操作。此方法會根據資料庫產生大量繁瑣的 DML 操作。每個 DML 操作的延遲是性能的關鍵驅動因素之一。由於這種架構,支援 Enterprise One 的資料庫的 CPU 使用率往往是最小的,而網路和磁碟 I/O 特性是程序效能的主要驅動因素。EnterpriseOne 資料庫調校主要著重於 DML 延遲的最小化。
為了減輕磁碟讀取 I/O 的延遲影響,通常會使用大型緩衝區快取。這可以與 SQL Server 資料壓縮結合使用,使緩衝區快取更加有效。雖然使用資料壓縮會影響 CPU,但是當您將這種方法與 Enterprise One 搭配使用時,負荷會降至最低。當緩衝區快取的大小足夠大時,磁碟讀取 I/O 延遲通常不會引起關注。
SQL Server 緩衝區快取不會解決寫入 I/O 的延遲。當 EnterpriseOne 處理產生大量的繁瑣寫入操作時,效能可能會被提交到交易日誌之每個寫入操作的延遲所限制。為了最小化這種延遲,您可以為 LDF 檔案使用 io2 和/或 io2 Block Express 磁碟區。如果單獨 io2 或 io2 Block Express 不足以提供所需效能,或者成本過高,您可以使用延遲的耐久性組態來改善效能。
因為許多 EnterpriseOne 程序會建立可能與其他開啟的記錄集重疊的記錄集,因此您應該在每個 Enterprise One 資料庫上啟用已提交讀取快照隔離 (RCSI),以將封鎖降到最低。啟用此功能時,它可為 tempdb 建立大量 I/O 需求。tempdb 本質上是短暫的,不需要標準區塊儲存的耐用性。在大多數情況下,本機執行個體非揮發性記憶體快速 (NVMe) 儲存是 tempdb 的最佳選擇。
本指南的以下各節將探討這些以及其他最佳實務,以便針對 JD Edwards EnterpriseOne 優化 SQL Server。