绝对晕的一个问题,基本上我已经彻底晕倒了。(100分)

  • 主题发起人 主题发起人 soul
  • 开始时间 开始时间
rester应该是对的.
调换一下两句的执行顺序如何?
 
请问,在线富翁是怎么实现,上线和离开怎么知道人名
 
//select * from letters
//where id in
//( SELECT DISTINCT Parent FROM letters WHERE (Parent <> 0)
// AND (UserFrom = 'yysun' ) ) and parent=0 and Status < 2
select count(a.*) from
(select * from letters where parent=0 and status<2) as a join
(SELECT DISTINCT Parent FROM letters WHERE (Parent <> 0)
AND (UserFrom = 'yysun' )) as b
on a.id=b.parent
用in特别费时间,应该用连接语句代替子查询
或者用exists
select count(*) from letters a
where exists
( SELECT DISTINCT Parent FROM letters WHERE (Parent <> 0)
AND (UserFrom = 'yysun') and a.parent=0 and a.Status < 2
and a.id=parent)
 
有其它数据库的比较吗
 
告诉大家正确答案吧,是因为:
两条语句选用了完全不同的索引,而count这句选用的那个索引不优,所以慢了,
在适当调整索引后就很快了,但是还是不如取@@ROWCOUNT快,那是因为我测试的数据量
正好比较小,同时也是因为我始终找不见最优化的索引。
其次,在sql server中,in的操作和inner join是一样的,可以看查询计划,完全一致,
已经优化了,所以这个不是影响性能的要素。
最后,本来在查询分析中我是用过索引优化向导的,但没有优化出什么来,于是我把它
正在使用的那个索引给删除了,结果倒是优化出来了,所以最后我还是晕。
 
呵呵.学到好多知识
 
首先是结束问题,其次告诉大家我帝国能打4个极难。有谁和我联网啊。
 
呵呵,soul,发现你越来越可爱了,有时间一定上广州拜访,我带茶叶,你品茶吧?
 
ok,此文能阻止人入岐途
 
能不能 多散些分啊
很穷的说
 
奇怪,没结成功,再结,哦,上次光填分数,没选结束了。
 
后退
顶部