重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 474|回复: 0
打印 上一主题 下一主题

SQLServer中的临时表和表变量的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2023-9-10 17:58:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.临时表是 session 级的,表变量是批处理级
所谓的批处理,就是以go为界定,两者就是作用域上的不同。

2.临时表可以后续修改,表变量不能后续修改。
这里的修改涉及到 字段,索引,整体上来说临时表在使用上和普通表趋同,表变量不能进行后续修改。

表变量没有统计信息,也不可以后续做 DDL 操作,这种情况下表变量比临时表更轻量级,不会有如下副作用:
1. DDL 修改导致执行计划过期重建
2. sqlserver 对统计信息的维护压力
其实在这种作用域下高频的创建和删除表的操作中,表变量会让系统压力减轻很多。但阳事总会有阴事来均衡它,一旦表变量的记录条数严重偏移默认的1条,会污染sqlserver的执行计划择取,可能会让你的sql遭受灭顶之灾,所以一定要控制表变量的记录条数,最好在百条内 。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-30 03:05 , Processed in 0.091698 second(s), 19 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表