适用范围:SQL Server
使用 lightweight pooling 选项(也称为 纤程模式)可提供一种方法,用于减少与在对称多处理 (SMP) 环境中有时出现的过多上下文切换相关的系统开销。 当存在过多的上下文切换时,轻量级池化可以以内联方式执行上下文切换,从而帮助减少用户态/内核态之间的环级切换,并因此提供更高的吞吐量。
重要
从 SQL Server 2025 (17.x) 开始,由 lightweight pooling 选项启用的纤程模式功能已被弃用,并计划在 SQL Server 的未来版本中删除。 由于已知稳定性和兼容性问题,Microsoft建议避免在任何版本的 SQL Server 中使用此功能。
限制
在轻量级池化下,不支持执行公共语言运行时 (CLR)。 禁用以下两个选项之一:clr enabled 或 lightweight pooling。 依赖于 CLR 且在纤程模式下无法正常工作的功能包括:hierarchyid 数据类型、复制以及使用基于策略的管理来监视和强制执行最佳做法。
SQL Server Express 版本不支持轻量级池化。
注解
基于 Windows 纤程的纤程模式适用于工作线程的上下文切换是性能关键瓶颈的情况。 因为这种情况很少出现,所以纤程模式很少增强典型系统上的性能或可扩展性。 Windows Server 中改进的上下文切换减少了对纤程模式的需求。
我们不建议您将纤程模式调度用于常规操作。 因为纤程模式会通过抑制上下文切换优点的正常发挥来降低性能,并且使用线程本地存储区 (TLS) 或线程所有的对象(如 Windows 互斥体)的 SQL Server 组件在纤程模式下无法正常工作。
将 lightweight pooling 设置为 1 将使 SQL Server 切换到纤程模式计划。 该选项的默认值为 0。
lightweight pooling选项是一个高级选项。 如果使用 sp_configure 系统存储过程来更改该设置,则只有在 lightweight pooling 设置为 show advanced options 时才能更改 1。 该设置在服务器重新启动后生效。