为TempDB启用跟踪标志1118(作为服务启动参数)有很多优点,可以减少与混合扩展区分配相关的争用,即使是SQL 2008 / R2或SQL 2012也是如此。为什么世界上它被禁用了默认SQL Server配置中的框?
答案 0 :(得分:5)
Misconceptions around TF 1118。阅读关于的段落为什么在2005年和2008年不需要那么多的跟踪标志?。还要考虑有很多工作负载很少或根本不使用临时表(例如,设计最好的OLTP工作负载),其中一些工作负载可能会受到tempdb中的扩展分配的影响。
答案 1 :(得分:3)
使用TF-1118。在此跟踪标志下,SQL Server分配完整的扩展区 到每个tempdb对象,从而消除了对SGAM的争用 页。 这是以牺牲一些磁盘空间浪费为代价的 tempdb。此跟踪标志自SQL Server 2000起可用 应该在SQL Server 2005中改进tempdb对象缓存 在分配结构中明显减少争用。如果你看到 在SGAM页面中的争用,您可能希望使用此跟踪标志。缓存 tempdb对象可能并不总是可用。例如,缓存的tempdb 对象在查询计划中被销毁 关联被重新编译或从过程缓存中删除。
因此需要更多的空间来损害某些工作负载。
答案 2 :(得分:0)
T1118::删除服务器上的大多数单页分配,从而减少了SGAM页上的争用。创建新对象时,默认情况下,前八个页面是从不同的扩展区(混合扩展区)分配的。之后,当需要更多页面时,将从同一范围(统一范围)分配这些页面。 SGAM页面用于跟踪这些混合范围,因此在发生大量混合页面分配时,它可能很快成为瓶颈。创建新对象时,此跟踪标志从同一范围分配所有八个页面,从而最大程度地减少了扫描SGAM页面的需要。有关更多信息,请参见这篇Microsoft支持文章。
注意:从SQL Server 2016(13.x)开始,此行为由ALTER DATABASE的SET MIXED_PAGE_ALLOCATION选项控制,并且跟踪标志1118无效。有关更多信息,请参见ALTER DATABASE SET选项(Transact-SQL)。
范围:仅全局