社区
疑难问题
帖子详情
求with as (子查询部分)与 临时表区别?
dataadapters
2012-05-21 10:34:21
背景:在实现的一个复杂SQL时,运用了with as 其中,with as 最后得到的结果是5列35行,我用另一个张表去关联这个集合,时间竟然用到惊人的11秒。然后我先把with as 得到的集合先插入临时表中,再去关联另一表,时间就少于1秒。
求原因,求大神,求真项...
...全文
1356
9
打赏
收藏
求with as (子查询部分)与 临时表区别?
背景:在实现的一个复杂SQL时,运用了with as 其中,with as 最后得到的结果是5列35行,我用另一个张表去关联这个集合,时间竟然用到惊人的11秒。然后我先把with as 得到的集合先插入临时表中,再去关联另一表,时间就少于1秒。 求原因,求大神,求真项...
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gogodiy
2012-05-22
打赏
举报
回复
看错了,是6楼,sorry。
gogodiy
2012-05-22
打赏
举报
回复
楼主8楼说的是oracle才有的功能,MSSQL没有。
wyx100
2012-05-21
打赏
举报
回复
#3楼 得分:0回复于:2012-05-21 10:59:05cte(子查询)记录数不多,按理说,不应该差这么远
但是,mssql有时就会有这样出乎意料的情况
Mr_Nice
2012-05-21
打赏
举报
回复
[Quote=引用楼主 的回复:]
背景:在实现的一个复杂SQL时,运用了with as 其中,with as 最后得到的结果是5列35行,我用另一个张表去关联这个集合,时间竟然用到惊人的11秒。然后我先把with as 得到的集合先插入临时表中,再去关联另一表,时间就少于1秒。
求原因,求大神,求真项...
[/Quote]
差异就在临时表上了。 LZ看看两者的执行计划(Ctrl +L)是否一致。就知道省出来的这1秒发生在何处了。
haitao
2012-05-21
打赏
举报
回复
cte(子查询)记录数不多,按理说,不应该差这么远
但是,mssql有时就会有这样出乎意料的情况
geniuswjt
2012-05-21
打赏
举报
回复
是这样的,你用cte,其实和你直接用子查询效率上没太大差别
而用临时表,是数据真正跑到临时表里了,相当于第2次关联时就是和一个小表关联,效率会很高
开着拖拉机泡妞
2012-05-21
打赏
举报
回复
CTE类似于派生表。后面必须出现相应的增删改的语句才可以使用。
建议楼主贴出语句
开着拖拉机泡妞
2012-05-21
打赏
举报
回复
没用过
dataadapters
2012-05-21
打赏
举报
回复
恩,追问下:网上说在用with as 时,可以用关键字materialize将结果存储为临时表,各位有用过吗?在网上找了个遍,没找到怎么用,我用的数据库是MS SQL
MySQL
查询
与高级
查询
(多
表
、嵌套和正则
表
达式)
Re: MySQL
查询
与高级
查询
(多
表
、嵌套和正则
表
达式) (
查询
的能力,显示DBA的功力) ============================================= 数据库管理系统的个最重要的功能就是数据
查询
,数据
查询
不应只是简单...
with as 和临时
表
的使用
with as 和临时
表
的使用with as 和建临时
表
的
区别
with as (公共
表
达式CTE)...with as 是
子
查询
部分
,并不是真正的临时
表
,
查询
结果保存在内存中。定义一个sql片段,该片段在整个sql都可以被利用,可以提高代码的...
mysql临时
表
with as_SQL中的with as的使用(转)
本文导读:with as你可以把他看做一个语句片段,也可以看做一个临时
表
,也叫做
子
查询
部分
。我们可以利用with as语句对
查询
出的结果进行二次处理,比如汇总、分类、
求
平均数等,实在是太方便了。一、WITH AS的含义...
WITH AS
子
查询
WITH AS短语,也叫做
子
查询
部分
(subquery factoring),是用来定义一个SQL片断,该SQL片断会被整个SQL语句所用到。 1.with
子
句的返回结果存到用户的临时
表
空间中,只做一次
查询
,反复使用,提高效率。 ...
mysql 存储过程 with as_SQL数据库中临时
表
、临时变量和with as关键词创建“临时
表
”的
区别
...
创建“临时
表
”(逻辑上的临时
表
,可能不一定是数据库的)的方法有一下几种:1.with tempTableName as方法(05之后出现):with temptable as 其实并没有建立临时
表
,只是
子
查询
部分
(subquery factoring),定义一个SQL...
疑难问题
22,210
社区成员
121,726
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章