请教一个关于子查询的运行机制问题。谢谢

blackfiles 2004-11-09 01:23:22
select * from (select * from tableA...) as tableB,tableC where tableB.......

这样的一个子查询,在DB里面的运行是怎样的?是先把select * from tableA的记录找到后,再从里面提取数据,还是把整个SQL语句用DB自己的方法一起优化运行的??

这样的子查询,如果select * from tableA有很大的记录集,对于tableA的一些筛选条件,直接放在
select * from tableA where ... 后面, 和放在外面的where上筛选,

执行效率上会有多大区别??? 谢谢

(说明:这里的select * from tableA只是表示子查询,这里可能是多个表关联出来的数据)
...全文
159 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-11-09
  • 打赏
  • 举报
回复
一样的
  • 打赏
  • 举报
回复
好像是从外面开始解析的,所以把限定条件写在外面速度会快一些
Andy__Huang 2004-11-09
  • 打赏
  • 举报
回复
這個還要看條件是什么﹖語句是什么寫的﹖比如where 后面帶in子查詢會相當的影響查詢速度﹐所以我覺得where前的子查詢會比where后面的子查詢快一些
victorycyz 2004-11-09
  • 打赏
  • 举报
回复
SQL Server会帮你做优化的事情,只要你的语句结果一样,执行效率就会一样。
lsxaa 2004-11-09
  • 打赏
  • 举报
回复
应该差不多

34,873

社区成员

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

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