临时表会不会影响性能?

Veeve 2003-10-04 10:23:24
首先有个问题:创建普通表的时候是否一定有磁盘操作?如果是的那么创建临时表也有磁盘操作了?如果也是的,那么用临时表就影响性能喽?
...全文
416 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Veeve 2003-10-04
  • 打赏
  • 举报
回复
我要得到的结果是这样的:先得到某个表的查询的结果集——》对这结果集遍历并进行一些update和delete操作——》返回处理后的结果集。能不通过临时表实现吗?
pengdali 2003-10-04
  • 打赏
  • 举报
回复
你是7.0,那只能用临时表,或你也可以用嵌套查询,来避免一部分使用临时表:

select * from (select * from 表1 where 列1=1) 别名 where 列2=3
---------------------------------^^^^^这个别名你随便写一个但一定要写如:a 或 tem
Veeve 2003-10-04
  • 打赏
  • 举报
回复
是不是SQL Server2000的特性?我用的7.0版能定义表变量吗?还有,表变量能用在游标上吗?比如 DECLARE cursor_name CURSOR FOR SELECT * FROM @表变量
Veeve 2003-10-04
  • 打赏
  • 举报
回复
有这种用法吗:
declare @表变量 table(a int)
insert @表变量 valeus(1)

我放在查询分析器里执行告诉我语法错误嘛
伍子V5 2003-10-04
  • 打赏
  • 举报
回复
当然会影响性能
使用与否得由你权衡
顾名思义它主要用来暂存数据
有时一些复杂的查询用临时表也可以提高性能
比如我们只复杂操作一个很大的数据表里面极少几条记录
那么我们先把这些记录放在一个临时表里
然后对临时表进行操作就能提高性能
westbulls 2003-10-04
  • 打赏
  • 举报
回复
对了用楼上的表变量也可以,它是一个有作用域限制的变量,在存储过程中最好用它不要用临时表啦!但就是有些语句不能使用,请自己参考相应帮助!
westbulls 2003-10-04
  • 打赏
  • 举报
回复
那是一定的啦,所以如果要是有方法可以一条语句写完的话,就不要先生成临时表啦!
pengdali 2003-10-04
  • 打赏
  • 举报
回复
有,因为#临时表是要写在tempdb这个库里的。你可以用

declare @表变量 table(a int)
insert @表变量 valeus(1)

select * from @表变量

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧