BizTalk Server 数据库优化的预配置

BizTalk Server 是数据库密集型应用程序,可能需要在 Microsoft SQL Server 中创建多达13个单独的数据库。 由于 SQL Server 在任何 BizTalk Server 环境中都能扮演关键角色,因此,SQL Server 配置/优化以实现最佳性能,这是一个极其重要的重要性。 如果 SQL Server 未进行优化,则 BizTalk Server 使用的数据库会成为瓶颈,BizTalk Server 环境的整体性能会受到影响。 本主题介绍在安装 BizTalk Server 和配置 BizTalk Server 数据库之前应遵循的几个 SQL Server 性能优化。

设置 NTFS 文件分配单元

SQL Server 将其数据存储在范围中,这些是八个8k 页的组。 因此,若要优化磁盘性能,请将 NTFS 分配单元大小设置为64kb,如中的 "预部署 i/o 最佳实践" SQL Server 最佳实践一文中的 "预部署 i/o 最佳实践 https://go.microsoft.com/fwlink/?LinkId=140818 " 一节中所述。 有关 SQL Server 页面和范围的详细信息,请参阅 SQL Server 联机丛书主题了解页面和区 ( 超链接 " https://go.microsoft.com/fwlink/?LinkId=148939 " https://go.microsoft.com/fwlink/?LinkId=148939) 。

数据库规划注意事项

建议将 SQL Server 数据库承载于快速存储 (例如,快速 SAN 磁盘或快速 SCSI 磁盘) 。 建议 RAID 10 (1 + 0) 而不是 RAID 5,因为 raid 5 的写入速度较慢。 较新的 SAN 磁盘具有非常大的内存缓存,因此在这种情况下,RAID 选择并不重要。 为了提高性能,数据库及其日志文件可以驻留在不同的物理磁盘上。

为 SQL Server 安装最新 Service Pack 和累积更新

安装最新的 service pack,并为 SQL Server 2005 和 SQL Server 2008 以及最新 .NET Framework service pack 安装最新的累积更新。

在 BizTalk Server 和 SQL Server 上安装 SQL Service pack

为 SQL Server 安装 service pack 时,还应在 BizTalk Server 计算机上安装 Service Pack。 BizTalk Server 使用 SQL Server service pack 更新的 SQL 客户端组件。

请考虑实施 SQL Server 2008 数据收集器和管理 Data Warehouse

SQL Server 2008 使用新的数据收集器和管理 Data Warehouse 来收集与环境/数据库性能相关的数据,以便进行测试和趋势分析。 数据收集器将所有收集到的数据保存到指定的管理 Data Warehouse。 尽管这不是性能优化,但这对于分析任何性能问题都很有用。

授予用于 SQL Server Windows 锁定内存页 "特权的帐户

向 SQL Server 服务帐户授予 Windows "锁定内存页" 特权。 这样做的目的是为了防止 Windows 操作系统通过锁定为物理内存中的缓冲池分配的内存来 SQL Server 进程的缓冲池内存。 有关详细信息,请参阅 Microsoft 知识库文章 914483 "如何在64位版本的 SQL Server 2005" https://go.microsoft.com/fwlink/?LinkId=148948 中减少缓冲池内存分页。

向 SQL Server 服务帐户授予 SE_MANAGE_VOLUME_NAME 权限

确保运行 SQL Server 服务的帐户具有 "执行卷维护任务" Windows 权限,或确保该帐户属于可执行操作的安全组。 这样,如果数据库必须自动增长,则即时文件初始化可确保最佳性能。

设置最小和最大服务器内存

承载 BizTalk Server 数据库的 SQL Server 计算机应该专用于运行 SQL Server。 建议将每个 SQL Server 实例的 "最小服务器内存" 和 "最大服务器内存" 选项设置为指定要分配给 SQL Server 的固定内存量。 在这种情况下,应将 "最小服务器内存" 和 "最大服务器内存" 设置为相同的值 (等于 SQL Server 将使用) 的最大物理内存量。 这会减少 SQL Server 动态管理这些值时将使用的开销。 在每台 SQL Server 计算机上运行以下 SQL 命令,以指定要分配给 SQL Server 的固定内存量:

sp_configure ‘Max Server memory (MB)’,(max size in MB)
sp_configure ‘Min Server memory (MB)’,(min size in MB)

为 SQL Server 设置内存量之前,请通过从总物理内存中减去 Windows 服务器所需的内存来确定适当的内存设置。 这是可以分配给 SQL Server 的最大内存量。

注意

如果运行 BizTalk Server 数据库的宿主 SQL Server 的计算机 () 也承载 Enterprise 的单 Sign-On 主密钥服务器,则可能需要调整此值以确保有足够的内存可用于运行 Enterprise 的单个 Sign-On 服务。 在 SQL Server 群集上运行 Enterprise 单个 Sign-On 服务的群集实例不是一种不常见的做法,这样可以为主密钥服务器提供高可用性。 有关群集化 Enterprise 单一 Sign-On 主密钥服务器的详细信息,请参阅 BizTalk Serverdocumentation https://go.microsoft.com/fwlink/?LinkID=106874 中的 "如何群集主密钥服务器" 主题。

在 BizTalk Server 使用的每个 SQL Server 实例上,将 tempdb 数据库拆分为大小相等的多个数据文件

确保用于 tempdb 的数据文件大小相等非常重要,因为 SQL Server 使用的按比例填充算法基于数据文件的大小。 此算法将尝试确保 SQL Server 按照该文件中剩余的可用空间比例填充每个文件,以便它们最大限度地达到其最大容量。 如果创建的数据文件的大小不相等,则按比例填充算法将最大程度地使用 GAM 分配,而不是分散所有文件之间的分配,从而摆创建多个数据文件的目的。 Tempdb 数据库的数据文件数应配置为至少等于分配给 SQL Server 的处理器数。

启用跟踪标志 T1118 作为 SQL Server 的所有实例的启动参数

实现跟踪标志-通过删除几乎所有单页分配,T1118 可帮助减少跨 SQL Server 实例的争用。 有关详细信息,请参阅 Microsoft 知识库文章 328551 "PRB: tempdb 数据库的并发增强功能" https://go.microsoft.com/fwlink/?LinkID=103713

请勿更改最大并行度、SQL Server 统计信息或数据库索引重新生成和碎片整理的默认 SQL Server 设置

如果 SQL Server 实例将承载 BizTalk Server 数据库,则不应更改某些 SQL Server 设置。 具体而言,SQL Server 的最大并行度、MessageBox 数据库上的 SQL Server 统计信息,并且不应修改数据库索引重新生成和碎片整理的设置。 有关详细信息,请参阅 BizTalk Server 操作指南 https://go.microsoft.com/fwlink/?LinkId=114358 中的主题 "SQL Server 设置不应更改"。