SQLSERVER中临时表和表变量的最大区别
SQLSERVER中临时表和表变量的最大区别
不知道大家有没有注意到,SQLSERVER里有两种对象可以暂时存放表结构的数据
一种就是大家很熟悉的 临时表(temp table)
另一种是名气小一点,是 表变量(table variable)
这两种对象功能类似,差异不太明显。
功能上比较大的差别是:表变量可以作为存储过程的返回参数,而临时表不行
那是不是用表变量就可以了,为什麽SQLSERVER还要保留临时表这个功能呢?其实这两个对象在内部实现上还是有很大区别的。
最显著的区别:SQLSERVER会像对普通表一样,在临时表上维护统计信息,用户也可以在上面建立索引。
而表变量上,既不能建立索引,也不会有统计信息。
SQLSERVER在做执行计划的时候,总是认为表变量里的数据量只有很少的几行
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战