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

标题: SQLServer中的临时表和表变量的区别 [打印本页]

作者: 刘泽宇    时间: 2023-9-10 17:58
标题: SQLServer中的临时表和表变量的区别
1.临时表是 session 级的,表变量是批处理级
所谓的批处理,就是以go为界定,两者就是作用域上的不同。

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

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






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2