加急!!!这条sql怎么优化

Zhang_qiankun 2014-01-09 10:47:40
select sitename,sitehost from b_sitelist where id in (select site_id from b_usersitelist where user_id='6' and isSelect='1')


查询的时候太慢太慢了 怎么可以优化
...全文
221 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
铁歌 2014-01-18
  • 打赏
  • 举报
回复
1.b_sitelist id建立主键索引 2.b_usersitelist建立user_id和isSelect组合索引
發糞塗牆 2014-01-15
  • 打赏
  • 举报
回复
如何解决的?
Zhang_qiankun 2014-01-15
  • 打赏
  • 举报
回复
SQL优化已经解决了
suek 2014-01-10
  • 打赏
  • 举报
回复
如果in中的语句有重复的话,还要加个distinct吧,或者用exists实现
Yole 2014-01-09
  • 打赏
  • 举报
回复
引用 6 楼 guguda2008 的回复:
[quote=引用 5 楼 u010192842 的回复:] [quote=引用 4 楼 guguda2008 的回复:] [quote=引用 3 楼 u010192842 的回复:] [quote=引用 2 楼 DBA_Huangzj 的回复:]
SELECT  b_sitelist.sitename ,
        b_sitelist.sitehost
FROM    b_sitelist
        INNER JOIN ( SELECT site_id
                     FROM   b_usersitelist
                     WHERE  user_id = '6'
                            AND isSelect = '1'
                   ) b ON b_sitelist.id = b.site_id
如果还慢的话贴执行计划给我看
内连接的确要比半连接(in)要快很多![/quote] in不是半连接[/quote] 哦?我这知识都学杂了.... 求教!啥是半连接?[/quote] EXISTS和NOT EXISTS,看看那个连接的方式。[/quote] 我学的是 in和EXISTS是半连接 not in 和NOT EXISTS 是反连接 .... 求真理!!
guguda2008 2014-01-09
  • 打赏
  • 举报
回复
引用 5 楼 u010192842 的回复:
[quote=引用 4 楼 guguda2008 的回复:] [quote=引用 3 楼 u010192842 的回复:] [quote=引用 2 楼 DBA_Huangzj 的回复:]
SELECT  b_sitelist.sitename ,
        b_sitelist.sitehost
FROM    b_sitelist
        INNER JOIN ( SELECT site_id
                     FROM   b_usersitelist
                     WHERE  user_id = '6'
                            AND isSelect = '1'
                   ) b ON b_sitelist.id = b.site_id
如果还慢的话贴执行计划给我看
内连接的确要比半连接(in)要快很多![/quote] in不是半连接[/quote] 哦?我这知识都学杂了.... 求教!啥是半连接?[/quote] EXISTS和NOT EXISTS,看看那个连接的方式。
Yole 2014-01-09
  • 打赏
  • 举报
回复
引用 4 楼 guguda2008 的回复:
[quote=引用 3 楼 u010192842 的回复:] [quote=引用 2 楼 DBA_Huangzj 的回复:]
SELECT  b_sitelist.sitename ,
        b_sitelist.sitehost
FROM    b_sitelist
        INNER JOIN ( SELECT site_id
                     FROM   b_usersitelist
                     WHERE  user_id = '6'
                            AND isSelect = '1'
                   ) b ON b_sitelist.id = b.site_id
如果还慢的话贴执行计划给我看
内连接的确要比半连接(in)要快很多![/quote] in不是半连接[/quote] 哦?我这知识都学杂了.... 求教!啥是半连接?
guguda2008 2014-01-09
  • 打赏
  • 举报
回复
引用 3 楼 u010192842 的回复:
[quote=引用 2 楼 DBA_Huangzj 的回复:]
SELECT  b_sitelist.sitename ,
        b_sitelist.sitehost
FROM    b_sitelist
        INNER JOIN ( SELECT site_id
                     FROM   b_usersitelist
                     WHERE  user_id = '6'
                            AND isSelect = '1'
                   ) b ON b_sitelist.id = b.site_id
如果还慢的话贴执行计划给我看
内连接的确要比半连接(in)要快很多![/quote] in不是半连接
Yole 2014-01-09
  • 打赏
  • 举报
回复
引用 2 楼 DBA_Huangzj 的回复:
SELECT  b_sitelist.sitename ,
        b_sitelist.sitehost
FROM    b_sitelist
        INNER JOIN ( SELECT site_id
                     FROM   b_usersitelist
                     WHERE  user_id = '6'
                            AND isSelect = '1'
                   ) b ON b_sitelist.id = b.site_id
如果还慢的话贴执行计划给我看
内连接的确要比半连接(in)要快很多!
發糞塗牆 2014-01-09
  • 打赏
  • 举报
回复
SELECT  b_sitelist.sitename ,
        b_sitelist.sitehost
FROM    b_sitelist
        INNER JOIN ( SELECT site_id
                     FROM   b_usersitelist
                     WHERE  user_id = '6'
                            AND isSelect = '1'
                   ) b ON b_sitelist.id = b.site_id
如果还慢的话贴执行计划给我看
山寨DBA 2014-01-09
  • 打赏
  • 举报
回复
执行计划贴出来

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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