Server configuration: lightweight pooling

Applies to: SQL Server

Use the lightweight pooling option (also called fiber mode) to provide a means of reducing the system overhead associated with the excessive context switching sometimes seen in symmetric multiprocessing (SMP) environments. When excessive context switching is present, lightweight pooling might provide better throughput by performing the context switching inline, thus helping to reduce user/kernel ring transitions.

Limitations

Common language runtime (CLR) execution isn't supported under lightweight pooling. Disable one of two options: clr enabled or lightweight pooling. Features that rely upon CLR and that don't work properly in fiber mode include the hierarchyid data type, replication, and Monitor and Enforce Best Practices by Using Policy-Based Management.

Lightweight pooling isn't supported on SQL Server Express edition.

Remarks

Fiber mode, which is based on Windows fibers, is intended for situations in which the context switching of worker threads are the critical bottleneck in performance. Because this scenario is rare, fiber mode rarely enhances performance or scalability on a typical system. Improved context switching in Windows Server reduces the need for fiber mode.

We don't recommend that you use fiber mode scheduling for routine operation. Fiber mode can decrease performance by inhibiting the regular benefits of context switching, and because SQL Server components that use Thread Local Storage (TLS) or thread-owned objects, such as Windows mutexes, can't function correctly in fiber mode.

Setting lightweight pooling to 1 causes SQL Server to switch to fiber mode scheduling. The default value for this option is 0.

The lightweight pooling option is an advanced option. If you use the sp_configure system stored procedure to change the setting, you can change lightweight pooling only when show advanced options is set to 1. The setting takes effect after the server is restarted.