isnull(b.fisuse,0)=0 and isnull(a.fisuse,0) <>1 这2个判断是相互矛盾的,楼主想下,既然=0了,怎么可以!=1呢?我去掉后面一个判断了,
优化了下,楼主看下效率是否有提高。
 select a.fid,a.fname,a.feditor,a.fisuse,a.fmanagecusttype,a.fCustType, b.fAssignTime from Bus_S_Customerbaseinfo a 
left outer join Sys_AssignCustomerInfo b 
on a.fid= b.fcustomerid 
where a.feditor=657 and (b.fisuse=0 or b.fisuse is null) /*and isnull(a.fisuse,0) <>1*/ and (a.fCustType<2 or a.fCustType is null) /*isnull(a.fCustType,0) <2*/
and not Exists(select top 1 1 from App_S_SPXApplyRecord e where 
                e.fCustomerId=a.fid and (b.fisuse=0 or b.fisuse is null)/*isnull(e.fisuse,0)=0*/ and e.fAppType=7 and (e.fStatus=0 or e.fStatus is null) /*isnull(e.fStatus,0)>0 )*/ 
order by b.fAssignTime Desc