用临时表改善嵌套SQL语句的执行速度
来源:互联网 发布:安徽软件行业协会 编辑:程序博客网 时间:2024/06/07 00:15
导读:
用临时表改善嵌套SQL语句的执行速度
左直拳
这两天检查一条嵌套SQL语句,发觉非常耗时。形如:
SELECTKeyId,COUNT(1)ASNum
FROMTable1
WHERE1=1
ANDCreateDate>='2007-09-21'
ANDKeyId IN(SELECTKeyId FROMTable2 WHEREId=1611)
GROUPBYKeyId
究其原因,大约该SQL语句执行的步骤是从Table1中每拿出一条记录,都要执行
IN(SELECTKeyId FROMTable2 WHEREId=1611) 一番
靠,数据库也太弱智了吧。学编译方法时就知道,编译器会自动优化代码,将一些计算从循环中提取出来,数据库怎么就不能先查找出
(SELECTKeyId FROMTable2 WHEREId=1611)
的结果,然后再代入整条SQL语句中执行呢?
先是这样修改:
SELECTa.KeyId,COUNT(1)ASNum
FROMTable1 a
,(SELECTKeyId FROMTable2 WHEREId=1611) AS b
WHERE1=1
ANDa.CreateDate>='2007-09-21'
ANDa.KeyId=b.KeyId
GROUPBYa.KeyId
结果发现没什么改进,有时甚至效果更坏。
把心一横,祭出临时表来:
SELECTKeyId INTO t# FROMTable2 WHEREId=1611;
SELECTa.KeyId,COUNT(1)ASNum
FROMTable1 a
,t#AS b
WHERE1=1
ANDa.CreateDate>='2007-09-21'
ANDa.KeyId=b.KeyId
GROUPBYa.KeyId;
DROP TABLE #t;
结果速度改善非常明显。不必担心并发操作时临时表会有冲突,说这个会话创建了一个t#,那个会话也创建了一个t#。临时表就好象局部变量,只在某个会话里有意义。
本文转自
http://blog.csdn.net/leftfist/archive/2007/09/30/1808253.aspx
用临时表改善嵌套SQL语句的执行速度
左直拳
这两天检查一条嵌套SQL语句,发觉非常耗时。形如:
SELECTKeyId,COUNT(1)ASNum
FROMTable1
WHERE1=1
ANDCreateDate>='2007-09-21'
ANDKeyId IN(SELECTKeyId FROMTable2 WHEREId=1611)
GROUPBYKeyId
究其原因,大约该SQL语句执行的步骤是从Table1中每拿出一条记录,都要执行
IN(SELECTKeyId FROMTable2 WHEREId=1611) 一番
靠,数据库也太弱智了吧。学编译方法时就知道,编译器会自动优化代码,将一些计算从循环中提取出来,数据库怎么就不能先查找出
(SELECTKeyId FROMTable2 WHEREId=1611)
的结果,然后再代入整条SQL语句中执行呢?
先是这样修改:
SELECTa.KeyId,COUNT(1)ASNum
FROMTable1 a
,(SELECTKeyId FROMTable2 WHEREId=1611) AS b
WHERE1=1
ANDa.CreateDate>='2007-09-21'
ANDa.KeyId=b.KeyId
GROUPBYa.KeyId
结果发现没什么改进,有时甚至效果更坏。
把心一横,祭出临时表来:
SELECTKeyId INTO t# FROMTable2 WHEREId=1611;
SELECTa.KeyId,COUNT(1)ASNum
FROMTable1 a
,t#AS b
WHERE1=1
ANDa.CreateDate>='2007-09-21'
ANDa.KeyId=b.KeyId
GROUPBYa.KeyId;
DROP TABLE #t;
结果速度改善非常明显。不必担心并发操作时临时表会有冲突,说这个会话创建了一个t#,那个会话也创建了一个t#。临时表就好象局部变量,只在某个会话里有意义。
本文转自
http://blog.csdn.net/leftfist/archive/2007/09/30/1808253.aspx
- 用临时表改善嵌套SQL语句的执行速度
- 用临时表改善嵌套SQL语句的执行速度
- 用临时表改善嵌套SQL语句的执行速度
- 用临时表改善嵌套SQL语句的执行速度
- 得出SQL执行速度的语句
- SQL嵌套语句执行顺序
- SQL嵌套语句执行顺序
- SQL嵌套语句执行顺序
- Sql语句-临时表
- 动态执行Sql语句与临时表的问题(对象名无效)
- 改善SQL语句的效率
- 改善SQL语句的效率
- sql查询时使用临时表的速度问题
- 用临时表改善数据查询的性能
- 计算当前sql语句执行速度
- Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表)
- SQL语句创建临时表
- 优化SQL的执行速度
- Socket Modes
- cdf.exe
- cdplayer.exe
- 推荐两部电影
- cdspeed.exe
- 用临时表改善嵌套SQL语句的执行速度
- cd_load.exe
- axis初体验
- Fool me once
- ceekey.exe
- C++ Primer Plus 第三章 处理数据
- xmms乱码解决方法
- cepmtray.exe
- 缓存