gpt4 book ai didi

sql-server - SQL Server 临时表与表变量

转载 作者:行者123 更新时间:2023-12-01 05:38:51 25 4
gpt4 key购买 nike

我们客户的数据库管理员要求我们不要在报告存储过程 ( #Table ) 中使用临时表,而是使用表变量。

表变量是否比临时表效率低?

另外,如果我创建一个表为 #table ,而不是 ##table , 一对一#是 session 表,而不是 ##这是全局性的,对吗?当stored procedure完成了,你不做 DROP TABLE #table ... 是 #table还存在吗?如果它是基于 session 的,那么我还能再访问它吗?

最佳答案

与临时表相比,表变量可以导致更少的存储过程重新编译(参见 KB #243586 和 KB #305977),并且——因为它们不能回滚——不要打扰事务日志。##table属于全局临时表。是 #table 不存在,因为它只在给定的范围内,你永远不会在给定的范围内访问它。
编辑
我还想指出使用 CTE(通用表表达式),因为它也以某种方式作为临时表工作。
查看此答案以获取详细信息:Which are more performant, CTE or temporary tables?

关于sql-server - SQL Server 临时表与表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6991511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com