索引临时表

Pau*_*hab 2 index sql-server temporary-tables

当在估计的执行计划中建议这样做时,在临时表上应用索引是否是个好主意?

Mic*_*een 5

是的,这是个好主意。临时表将像永久表一样从索引中受益。索引创建也是一样的,只是有一些小的例外。

索引的运行方式与它们在永久表上的运行方式相同,但临时表是缓存的,如果工作负载严重倾斜,这可能会造成损害。

同样的警告也适用。仅仅因为索引存在并不意味着优化器会使用它。如果有很多索引,写入的成本会更高。陈旧的统计数据会产生糟糕的计划。

最近,通过向临时表添加索引,我能够将大型批处理过程的运行时间从超过 20 分钟减少到不到 3 分钟。这是一项值得的任务。

另请参阅Erik Darling 的索引临时表