日期:2013-04-28  浏览次数:20468 次

引见下列配置设置以及使用时应留意的事项: • 类似性掩码 • 轻量池 • 最大异步 IO • 最大辅助线程数量 • 内存 • 优先级提升 • 设置任务集大小

  SQL Server 只需进行很少的配置调整,就能获得非常高级的功用。可以通过使用良好的使用程序和数据库设计而不是通过大量的配置调整来获得高级功用。有关如何处理 SQL Server 的各种功用问题的信息,请参阅本文的“参考”部分。

  处理功用问题时,通过调整配置获得的改善程度通常不太大,除非当前没有正确配置系统。在 SQL Server 7.0 版及更高版本中,SQL Server 使用自动配置调整,并且配置设置(尤其是高级设置)极少需求更改。普通情况下,当没有难以抗拒的理由以及没有细心进行系统化测试以验证更改配置的必要性时,请不要更改 SQL Server 配置。在更改配置前,必须建立一个基准,以便可以衡量更改后的好处。

  如果 SQL Server 配置不正确,一些设置可能会降低服务器的稳定性,或者可能会致使 SQL Server 的行为不正常。对许多不同环境的多年支持经验表明,非默认配置设置的结果可能介于中性到非常消极之间。

  如果确实更改了配置,必须在更改前后都执行严厉的系统化功用测试以评估改善程度。

  依据实际的支持方案,SQL Server 7.0 版或更高版本无需进行任何手动配置调整,就能获得极其高级的功用。

  在 SQL Server 7.0 和更高版本中,默认情况下,SQL Server 会动态调整用户连接、锁和打开对象设置,所以不要对这些设置进行任何配置更改。

  类似性掩码

  类似性掩码设置指将线程绑定到特定 CPU 的牢固程度。默认情况下,Microsoft Windows NT 和 Microsoft Windows 2000 使用“软”类似性,这品种似性会试图在上次执行线程的 CPU 上重新调度该线程。但是,如果此操作无法实现,线程可能会在其他 CPU 上运转。

  在实际情况中,如果更改了类似性掩码设置的默认值,则很少能够改进功用,并且经常会使功用降低。

  类似性掩码将 SQL Server 限制到可用 CPU 的一个子集,并且允许其他竞争性服务更好地访问 CPU。多数情况下,由于 SQL Server 以普通优先级运转,所以不必进行此操作。Windows NT 或 Windows 2000 线程计划程序动态调整所有竞争性线程的线程优先级,以确保它们在所有可用 CPU 中具有平等的机会。

  除了非常特殊的情况以外,请不要调整类似性掩码。如果确实要选择调整类似性掩码,请在更改前后执行严厉的系统化测试,以验证进行改进的必要性以及改进的程度。

  轻量池

  默认情况下,SQL Server 对每个活动 SPID 或用户进程使用一个线程。这些线程以汇集配置方式运转,以使线程数量可以管理。高级配置选项“轻量池”(有时称为“纤程模式”)使用 Windows NT“纤程”支持,基本上通过单个线程来处理多个执行上下文。

  依据实际生产经验,除极少数情况以外,不必使用纤程模式。只要在满足下列所有条件时,轻量池才可能有用。您必须通过细心的受控测试来确定它能否实际有用。• 正在使用大型多处理器服务器。

  • 所有服务器都在以最大容量或接近最大容量的形状运转。

  • 发生了许多上下文切换(每秒钟 20,000 次以上)。

  要查找上下文切换,请使用功用监视器,选择计数器线程,选择对象 Context switches/sec",然后选择捕获所有 SQL Server 实例。 如果以纤程模式运转服务器,则 SQL Server 2000 中的 SQL Mail 不受支持。

  最大异步 IO

  SQL Server 7.0:SQL Server 7.0 中提供了最大异步 IO 配置设置。如果您的 RAID 系统速度较快并且您有办法衡量好处,则更改此设置可能是适当的。除非您具有基准以便衡量结果,否则请不要更改此设置。请监视磁盘活动并查找所有磁盘队列问题。有关其他信息,请参阅下列 SQL Server 联机图书主题:

    • “最大异步 IO 选项”

  • “监视磁盘活动”

  • “确定瓶颈”

  SQL Server 2000:在 SQL Server 2000 中,无法更改最大异步 IO 配置设置。SQL Server 2000 会自动调整此设置。

  最大辅助线程数量

  默认情况下,最大辅助线程数量设置为 255,这样最多可以创建 255 个辅助线程。多数情况下,请使用默认设置 255。这并不表示您只能建立 255 个用户连接。一个系统可以具有成千上万个用户连接(按其本质多路复用到 255 个辅助线程),并且普通而言,用户通常感觉不到任何延迟。在这种情况下,只可同时运转 255 个查询,但这会多路复用到可用 CPU 的数量,因此,无论所配置的辅助线程数量为多少,都可以感觉到并发特性。

  如果将辅助线程的数量配置为大于默认值,则由于调度和资源开销问题,几乎一直都会起相反的作用并且会降低功用。只要在非常特殊的情况下,并且当严厉的系统化测试表明添加此设置会有所协助时,才应该这样做。

  内存

  有关如何配置内存的信息,请参阅 SQL Server 联机图书主题“使用内存配置选项优化服务器功用”。

  有关如何为群集 SQL Server 配置内存的详细信息,请参阅 SQL Server 联机图书主题“创建毛病转移群集”中的“使用留意事项”。

   优先级提升

  默认情况下,优先级提升设置为 0,这样,无论您是在单处理器计算机还是对称的多处理器 (SMP) 计算机上运转 SQL Server,SQL Server 都会以普通优先级运转。如果将优先级提升设置为 1,SQL Server 进程将以较高的优先级运转。此设置不会使 SQL Server 进程以最高的操作系统优先级运转。

  依据实际的支持经验,您不必使用优先级提升来获取较佳的功用。如果您确实使用优先级提升,在某些情况下,可能会干扰服务器的正常运转。因此,除了非常特殊的情况以外,您不应使用它。例如,“Microsoft 产品支持服务”可能会在调查功用问题时使用优先级提升。

  重要说明:对于正在运转 SQL Server 的群集服务器,请不要使用优先级提升。

  设置任务集大小

  不要更改设置任务集大小的默认设置。使用默认值 0,Windows NT 或 Windows 2000 虚拟内存管理器可以确定 SQL Server 的任务集大小。安装 SQL Server 时,安装程序会自动指示 Windows NT 或 Windows 2000 优化网络使用程序的功用。因此,Windows NT 或 Windows 2000 虚拟内存管理器进行极少的任务集剪裁,从而使得对 SQL Server 实例任务集形成的干扰最少。

  更改此设置通常不会带来任何功用方面的好处。依据实际的支持案例,更改此设置带来的损害通常比带来的好处多。

  如果更改设置任务集大小,还可能会导致 SQL Server 出现错误音讯 844 或 845。