首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL 表链接的奇怪有关问题(子查询速度比整体查询慢!)

2012-09-17 
SQL 表链接的奇怪问题(子查询速度比整体查询慢!)代码片段一:SQL codeselect * from hjt_edb_wlxqjh_detail

SQL 表链接的奇怪问题(子查询速度比整体查询慢!)
代码片段一:

SQL code
select * from hjt_edb_wlxqjh_detailwhere strWlqdId in (    select strWlqdId    from hjt_edb_wlqd_info    where strGsWlqdId = (        select B.strWlqdId        from hjt_edb_zscjh_info A        inner join hjt_edb_wlqd_info B on A.strWlqdId = B.strWlqdId and B.strDelFlg = dbo.DELETE_FLG_0()        where A.strDelFlg = dbo.DELETE_FLG_0()        and A.strZscJhId = 'strZscJhId_1'    ))and strZscJhId = 'strZscJhId_1'

代码片段二:
SQL code
select strWlqdIdfrom hjt_edb_wlqd_infowhere strGsWlqdId = (    select B.strWlqdId    from hjt_edb_zscjh_info A    inner join hjt_edb_wlqd_info B on A.strWlqdId = B.strWlqdId and B.strDelFlg = dbo.DELETE_FLG_0()    where A.strDelFlg = dbo.DELETE_FLG_0()    and A.strZscJhId = 'strZscJhId_1')

我的问题是为什么‘代码片段一(1秒内)’比‘代码片段二(18秒)’执行的快呢?
我个人认为‘代码片段二’是‘代码片段一’的子查询,速度应该比‘代码片段一’快,求解???
备注:hjt_edb_wlqd_info 100万条数据
  hjt_edb_zscjh_info 10万条数据
  hjt_edb_wlxqjh_detail 10万条数据

[解决办法]
注意,这里是要一个饼,这句话是 select * from 
hjt_edb_wlxqjh_detail
where strWlqdId in ( XXX )
)
and strZscJhId = 'strZscJhId_1'
中的and 后面的条件告诉我的,如果没有这个条件,就变成了
把能买的都买回来,那就要问所有饼摊啦
[解决办法]
我觉得把执行计划贴出来更好,猜测没多大意义。

热点排行