我目前正在优化存储过程,因为它会因计算量和条目而超时。
但是,我不确定情况。是否最好使用8个临时表(从数据库中的其他数据中提取信息)或者只是将数据库中的数据放入各种变量并访问它们?
哪种方法可以提供最佳性能来解决超时问题?
答案 0 :(得分:1)
取决于您在“临时”表格中有多少条目。
一个真正的临时表#temp
可以在其上定义索引,它将由SQL Server分析其行数等,并且它确实参与了事务,例如您可以插入行然后回滚,这些行将从您的临时表中“消失”
SQL Server将始终将表变量@temp
视为只有一行 - 如果您只有少量行,那么这不是问题。但是如果你需要存储数百行,那么SQL Server查询优化器的这种假设可能会导致查询计划效率极低。另外:表变量不参与交易 - 这可能是好事 - 或者是坏事 - 取决于您的环境
答案 1 :(得分:0)
根据您的上述回答,您绝对应该使用临时表。您还应该查看索引以提高性能。