在线等一个sql语句的优化问题
select   info_information.id,info_title,class_b,mode, 'price '=case   when   price=0   then    '面谈 '   when   price <> 0   then   price+ '元 '   end,city,pubdate,scannums   from   info_information,info_class_b,info_mode   where   info_class_b.id=class_bid   and   info_mode.id=modeid   and   class_bid   in   (select   id   from   info_class_b   where   class_aid=@class_aid   )   and   modeid=@modeid   order   by   istop   desc,pubdate   desc 
 数据表中有20万条数据,查询性能很差,希望高手们能给出优化的建议,还有怎么样建立索引能提高查询速度?
------解决方案--------------------select info_information.id, 
 	info_title, 
 	class_b, 
 	mode, 
 	 'price '=case when isnull(price,0)=0 then  '面谈 ' else price+ '元 ' end,--改为else就可以判断了 
 	city,pubdate, 
 	scannums  
 from info_information,info_class_b,info_mode  
 where info_class_b.id=class_bid  
 	and info_mode.id=modeid  
 --这句去掉,加在下面where中了 
 --	and class_bid in (select id from info_class_b where class_aid=@class_aid )  
 and modeid=@modeid  
 and info_class_b.class_aid=@class_aid 
 order by istop desc,pubdate desc
------解决方案--------------------把各字段所属的表标明一下,总的来说感觉用 
 select ..from  
 info_class_b as tb1 
 inner join 
 info_class_b as tb2 
 on tb1.class_aid=@class_aid 
 and tb1.id=tb2.class_bid  
 ..