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指南中所述。 有关SQL Server页和盘区的详细信息,请参阅了解页面和盘区

数据库规划注意事项

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

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

安装 SQL Server 2005 和 SQL Server 2008 的最新 Service Pack 和最新累积更新,以及最新的 .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计算机上运行以下 T-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 Server 所需的内存来确定适当的内存设置。 这是可以分配给SQL Server的最大内存量。

注意

如果计算机 (运行SQL Server BizTalk Server数据库同时托管企业单一 Sign-On 主机密服务器) ,则可能需要调整此值以确保有足够的内存可用于运行企业单一 Sign-On 服务。 在SQL Server群集上运行企业单一 Sign-On 服务的群集实例,为主机密服务器提供高可用性并非罕见。 有关聚类分析企业单一 Sign-On 主密钥服务器的详细信息,请参阅 上的 BizTalk Server 文档https://go.microsoft.com/fwlink/?LinkID=106874中的主题“如何群集主机密服务器”。

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

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

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

如果实现跟踪标志 - T1118 通过删除几乎所有单页分配来帮助减少跨SQL Server实例的争用。 有关详细信息,请参阅 Microsoft 知识库328551 - tempdb 数据库的并发增强功能。

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

如果你有一个包含BizTalk Server数据库的SQL Server实例,请不要更改SQL Server设置以实现最大并行度,SQL Server MessageBox 数据库的统计信息,数据库索引的设置将重新生成和碎片整理。 有关详细信息,请参阅SQL Server不应更改的设置