gpt4 book ai didi

sql-server-2005 - sql临时表@tmp vs #tmp

转载 作者:行者123 更新时间:2023-12-03 15:13:16 27 4
gpt4 key购买 nike

SQL 2005 中两种类型的临时表@tmp 与#tmp 之间有什么区别?
他们的其他类型是我不知道的吗?

谢谢

最佳答案

#tmp是一个临时表,主要表现得像一个真正的表。它可以有索引,可以有统计数据,参与交易,优化器会计算出正确的行估计
@tmp是一个表变量。没有索引,没有统计数据,没有事务感知,优化器总是假设正好是 1 行

否则,它们都是作用域(略有不同),在内存/缓存中,但上下文是 tempdb,如果太大等会溢出到磁盘

编辑:

关于表变量的键。它们没有区别。没有统计数据,假设为一行。它将表扫描更改为相同的聚集索引扫描。检查任何查询计划和估计的行。

另外,只需阅读此阅读What a difference a temp table makes over a table variable

The first thing that I did was put a primary key on the @ComputersToProcess table variable. That turned the table scan into a Clustered Index Scan, but didn’t do anything for performance.

关于sql-server-2005 - sql临时表@tmp vs #tmp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101215/

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