如何优化这个查询??
select      dbo.comlevel(c_name,getdate()),bb,c_name,id,j_code,j_position,c_com,j_jobtotal,j_sex,j_degree,j_major,j_jobprovince,j_jobcity   from   v_com where   j_state   =    'sd '   and   c_islock   =    'wy '   and   dateadd(month,CAST(j_jobtime   as   int),j_addtime)> =getdate()   ORDER   BY   dbo.c_corder(c_name,   GETDATE(),0),bb   desc   
 如何优化这个查询???才三千多数据速度太慢受不了,v_com是试图,dbo.c_corder,dbo.comlevel是函数 
------解决方案--------------------如果函数c_corder是递增或递减的话,把 
 ORDER BY dbo.c_corder(c_name, GETDATE(),0),bb desc, 
 改为 
 ORDER BY c_name,bb desc 
 可以吗
------解决方案--------------------查询速度慢的原因很多,操作系统的配置,数据库资源,等, 不 一定是语句的问题, 不过有的时候复杂的语句确实会使得查询速度慢,但是我看你的语句不是很复杂 
 如果是语句的问题我觉得你可以看下是那部分出了问题, 是函数那部分还是其他, 
 如果还慢2的话, 你可以试试加索引,如果你的表的字段多的话,也会影响速度的
------解决方案--------------------尽量不用函数,用子查询来代替. 
 还有就是where 语中尽量不要在等式的左边用公式,比如: 
 dateadd(month,CAST(j_jobtime as int),j_addtime)> =getdate()   
 change to : 
 j_addtime> =dateadd(month,-cast(j_jobtime),getdate())
------解决方案--------------------查询速度慢原因也有很多,不如使用了不合理的索引,或者根本没有使用索引;还有where左边的最好不用函数,当然有函数索引是可以的;条件的索引顺序等等。 
 楼主只有自己测试了。