SQLSERVER Union效率难题求解
遇到一个奇怪现象,百思不得奇解
sql是这样的:
第一个查询
with (树 a)
select count(*) from b where b.code = a.code and (b的过滤条件)
耗时0.x秒
第二个查询
with (树 a)
select count(*) from c where c.code = a.code and (c的过滤条件)
耗时也是0.x秒
但这样写就出问题了
with (树 a)
select count(*) from b where b.code = a.code and (b的过滤条件)
union
select count(*) from c where c.code = a.code and (c的过滤条件)
耗时 60+秒......
表数据 a 和 b大的一个是在50万行而已
检查执行路径,似乎c表的全表检索耗时71%,但看不出什么问题来
sql是这样的:
第一个查询
with (树 a)
select count(*) from b where b.code = a.code and (b的过滤条件)
耗时0.x秒
第二个查询
with (树 a)
select count(*) from c where c.code = a.code and (c的过滤条件)
耗时也是0.x秒
但这样写就出问题了
with (树 a)
select count(*) from b where b.code = a.code and (b的过滤条件)
union
select count(*) from c where c.code = a.code and (c的过滤条件)
耗时 60+秒......
表数据 a 和 b大的一个是在50万行而已
检查执行路径,似乎c表的全表检索耗时71%,但看不出什么问题来
...全文
相关推荐
sqlserver Union和SQL Union All使用方法
SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2 注释:默认地,UNION 操作符选取不同的值,即UNION是去了重的。如果允许重复的值,请使用 UNION ALL。 SQL UNION ALL 语法SELECT
SQLSERVER中union,cube,rollup,cumpute运算符使用说明
union,cube,rollup,cumpute运算符的使用技巧。
sqlserver union
sqlserver union学习材料,初学者适用
Mssql Union 与 Union All区别,用union还是union all主要看业务需求.docx
Mssql Union 与 Union All区别,场景示例说明
MSSQL用union查询爆数据.txt
MSSQL用union查询爆数据.txt


疑难问题
