在 SQL Server 中,您可以确保引擎将整个范围用于单个对象(即表)。我知道如何启用 trace 1118
,但我记得这只适用于新写入的数据。
我如何确保all the data
数据库中使用的是统一范围而不是混合范围?
是否可以通过重建聚簇索引来完成,并在不存在时创建和删除聚簇索引?
在 SQL Server 中,您可以确保引擎将整个范围用于单个对象(即表)。我知道如何启用 trace 1118
,但我记得这只适用于新写入的数据。
我如何确保all the data
数据库中使用的是统一范围而不是混合范围?
是否可以通过重建聚簇索引来完成,并在不存在时创建和删除聚簇索引?
简单的回答是肯定的,如果您在您的实例上启用了跟踪标志 1118,那么重建这些索引会将它们移动到完全扩展而不是混合。您可以从 Paul Randal 的帖子中获得更多相关信息:索引重建是否删除了混合页面?
ray herring on July 10, 2014
Paul 的回应提出的评论概要:Ray 询问是否启用此标志并执行重建会将混合扩展中的所有页面移动到专用扩展中。保罗说是的。但是我要注意的一件事是他的第二个问题,关于是否值得为现有表和索引担心。Paul 说,不,因为混合页面只有在 tempdb 中才真正对性能产生影响。
因此,您不太可能通过担心当前混合的页面来看到性能的大幅提升。只需进行正常的索引维护,在某些时候它们就会被移动。