京东爱德华兹在 SQL Server 上的 EnterpriseOne 行为概述 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

京东爱德华兹在 SQL Server 上的 EnterpriseOne 行为概述

EnterpriseOne 业务逻辑主要在应用程序中处理。只有基本的数据操作语言(DML)语句从应用程序传递到数据库。在标准处理中,记录集在数据库上开启,但由应用程序管理。然后,应用程序通常会对记录集中的每条记录执行多个 DML 操作。这种方法会产生大量的繁琐的针对数据库的 DML 操作。每个 DML 操作的延迟是性能的关键驱动因素之一。由于这种架构,所支持的数据库的 CPU 使用率 EnterpriseOne 往往很低,而网络和磁盘 I/O 特性是进程性能的主要驱动因素。 EnterpriseOne 数据库调整主要侧重于最小化 DML 延迟。

为了减轻磁盘读取 I/O 对延迟的影响,通常使用大型缓冲区缓存。这可以与 SQL Server 数据压缩相结合,大大提高缓冲区缓存的效率。尽管使用数据压缩会影响 CPU,但使用这种方法时,开销很小 EnterpriseOne。当缓冲区缓存大小足够时,磁盘读取 I/O 延迟通常不是一个值得关注的领域。

SQL Server 缓冲区缓存不解决写入 I/O 的延迟问题。当一个 EnterpriseOne进程生成大量闲聊的写入操作时,性能可能会受到提交到事务日志的每个写入操作的延迟的限制。为了最大限度地减少这种延迟,您可以使用 io2 和/或 LDF 文件的 io2 Block Express 卷。如果单独使用 io2io2 Block Express 不足以提供所需的性能,或者成本过高,您可以使用延迟耐久性配置来提高性能。

由于许多 EnterpriseOne 进程创建的记录集可能与其他打开的记录集重叠,因此应在每个 EnterpriseOne数据库上启用已提交的读取快照隔离 (RCSI),以最大限度地减少阻塞。启用此功能后,可能会产生大量的 tempdb I/O 需求。tempdb 本质上是临时的,不需要标准块存储的持久性。在大多数情况下,本地实例非易失性存储器 express (NVMe) 存储是最佳选择。tempdb

本指南的以下各节探讨了这些以及为JD Edward EnterpriseOne s优化 SQL Server 的其他最佳实践。