在 RDS for SQL Server 上配置资源调控器的最佳实践 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 RDS for SQL Server 上配置资源调控器的最佳实践

为了控制资源消耗,RDS for SQL Server 支持 Microsoft SQL Server 资源调控器。以下最佳实践有助于您避免常见的配置问题并优化数据库性能。

  1. 资源调控器配置存储在 master 数据库中。我们建议您始终单独保存资源调控器配置脚本的一个副本。

  2. 分类器函数延长了登录处理时间,因此建议避免在分类器中使用复杂的逻辑。过于复杂的函数可能会导致登录延迟或连接超时,包括 Amazon RDS 自动化会话。这可能会影响 Amazon RDS 自动化功能监控实例运行状况的能力。因此,始终建议在生产环境中实现分类器函数之前,先在预生产环境中测试分类器函数。

  3. 避免在工作负载组中为 REQUEST_MAX_MEMORY_GRANT_PERCENT 设置较高的值(大于 70),因为这会阻止数据库实例为其它并发查询分配足够的内存,从而可能导致内存授予超时错误(错误 8645)。相反,如果将此值设置为过低(小于 1)或设置为 0,则可能会阻止需要内存工作区的查询(例如涉及排序或哈希操作的查询)在用户定义的工作负载组中正常执行。RDS 通过在默认工作负载组上将值限制在 1 到 70 之间,来强制实施这些限制。

  4. 要将 tempdb 绑定到资源池,在将内存优化型 tempdb 元数据绑定到池后,池可能会达到其最大设置,并且使用 tempdb 的任何查询都可能因内存不足错误而失败。在某些情况下,如果发生内存不足错误,SQL Server 可能会停止。要减少发生这种情况的机会,请将内存池的 MAX_MEMORY_PERCENT 设置为较高的值。