跪求,泣求,高手救命,一SQL语句的优化,特急,解决就结贴
转换为存储过程也可以 
 =========================================================================== 
 string   sqlCommand   =    "select   a.documentID,a.documentName,e.typeName,a.documentInfo,a.vesionId,a.vesionDate, "+ 
  "a.documentSize,a.documentSend,a.documenttype,a.documenturl,a.VesionIDUser   from    "+ 
  "FeiliOA_DocumentManage_DocumentInfo   a,FeiliOA_DocumentManage_TypeLookUser   b, "+ 
  "FeiliOA_DocumentManage_TypeLookDept   c,FeiliOA_DocumentManage_TypeLookLv   d,FeiliOA_DocumentManage_TypeInfo   e    "+ 
  "where   ((a.DocumentType=b.typeID   and   (b.lookuser= ' "+name+ " '   or   b.lookuser= 'ALL '))   or    "+ 
  "(a.DocumentType=c.typeID   and   (c.lookdept= ' "+dept+ " '   or   c.lookdept= 'ALL '))   or    "+ 
  "(a.DocumentType=d.typeID   and   (d.looklv= ' "+lv+ " '   or   d.looklv= 'ALL ')))   and    "+ 
  "e.typeid=a.documenttype   and   a.documentStatic= 'a '   and    "+sqlStr+ "   group   by   a.documentID,a.documentName, "+ 
  "e.typeName,a.documentInfo,a.vesionId,a.vesionDate,a.documentSize,a.documentSend,a.documenttype, "+ 
  "a.documenturl,a.VesionIDUser ";
------解决方案--------------------写的一点格式都没看都不好看怎么优化?
------解决方案--------------------根据表的结构关系,可以使用LEFT OUTER JOIN 和INNER JOIN 。 
------解决方案--------------------这位兄弟,真的是说句实在话,您没有给数据表,最起码连结构和关系都不阐述一下,你真的让我们这些想帮您解决问题的人很为难~~ 
 不知道基本情况何来解决呢?
------解决方案--------------------呜呜,动态sql语句啊.实现思路,把结果集都放一临时表 #table 中,然后把动态参数加为选择条件 
 --建临时表 
 create #table ( 
 documentID type(你自己把type都写一下吧.), 
 documentName, 
 typeName, 
 documentInfo, 
 VesionIDUser, 
 vesionId, 
 vesionDate, 
 documentSize, 
 documentSend, 
 documenttype, 
 documenturl 
 ) 
 --将结果集插入临时表 
 insert into #table  
 SELECT a.documentID,a.documentName,e.typeName,a.documentInfo,a.VesionIDUser,a.vesionId,a.vesionDate,a.documentSize,a.documentSend,a.documenttype,a.documenturl 
 FROM  
 FeiliOA_DocumentManage_DocumentInfo a INNER JOIN #FeiliOA_DocumentManage_TypeLookUser b 
 ON a.DocumentType=b.typeID AND b.lookuser=@user AND a.documentStatic= 'a ' INNER JOIN FeiliOA_DocumentManage_TypeInfo e 
 ON e.typeid=a.documenttype 
 UNION 
 SELECT a.documentID,a.documentName,e.typeName,a.documentInfo,a.VesionIDUser,a.vesionId,a.vesionDate,a.documentSize,a.documentSend,a.documenttype,a.documenturl 
 FROM  
 FeiliOA_DocumentManage_DocumentInfo a INNER JOIN 
 #FeiliOA_DocumentManage_TypeLookDept c 
 ON a.DocumentType=c.typeID and c.lookdept=@dept AND a.documentStatic= 'a ' INNER JOIN FeiliOA_DocumentManage_TypeInfo e 
 ON e.typeid=a.documenttype 
 UNION 
 SELECT a.documentID,a.documentName,e.typeName,a.documentInfo,a.VesionIDUser,a.vesionId,a.vesionDate,a.documentSize,a.documentSend,a.documenttype,a.documenturl 
 FROM  
 FeiliOA_DocumentManage_DocumentInfo a INNER JOIN 
 #FeiliOA_DocumentManage_TypeLookLv d 
 ON a.DocumentType=d.typeID and d.looklv=@lv AND a.documentStatic= 'a ' INNER JOIN FeiliOA_DocumentManage_TypeInfo e 
 ON e.typeid=a.documenttype 
 -- 
 定义一变量,准备动态执行, 
 declare @s varchar(200) 
 set @s= 'select * from #table where  ' 
 set @s= 'select * from #table where documentname like  ' '%aaa+% ' ' and documenttype= ' 'T009 &