请教高手如何优化sql语句
sql语句有点长,当数据很多的时候查询很影响速度,请问这个语句可以怎么优化呢?
SELECT T_ITEM.F_DESC, T_ITEM.F_UNIT, SMP_APDTL.F_ID, SMP_APDTL.F_ITEMID, SMP_APDTL.F_DOCQTY, SMP_APDTL.F_TRANSID,  
CONVERT(numeric(18,4), SMP_APDTL.F_NEWUNITAMT) AS F_NEWUNITAMT,  CONVERT(numeric(18, 6),  
SMP_APDTL.F_AMT / SMP_APDTL.F_DOCQTY) AS F_UNITAMT,   CONVERT(numeric(18, 2), SMP_APDTL.F_AMT) AS F_AMT,  
CONVERT(numeric(18, 2), SMP_APDTL.F_AMT / (1+T_SALESORDHDR.F_TAXRATE) * T_SALESORDHDR.F_TAXRATE) AS F_TAXAMT,  
CONVERT(numeric(18, 2), SMP_APDTL.F_UNITAMT) AS F_FUNITAMT, CONVERT(numeric(18, 2),  
SMP_APDTL.F_UNITAMT * SMP_APDTL.F_DOCQTY)   AS F_FAMT, CONVERT(numeric(18, 2), SMP_APDTL.F_AMT)  
- CONVERT(numeric(18, 2), SMP_APDTL.F_UNITAMT * SMP_APDTL.F_DOCQTY)   AS F_SUBAMT,  
T_ITEMTRANSHDR.F_TRANSDATE, T_SALESORDDTL.F_ITEMCUSTDESC, T_SALESORDHDR.F_CUSTORDID,   
T_ITEMADJTYPE.F_DESC AS ADJDESC,T_ITEMADJTYPE.F_TRANSTYPE, T_ARDTL.F_ARID,   
SMP_PMPC_PMPCAP_Resource.F_Target_AP_CreateResult as F_APResult,
SMP_PMPC_BPAR_Resource.F_Source_AR_CreateResult as F_ARResult
  FROM  T_SALESORDHDR  
INNER JOIN  T_SALESORDDTL ON T_SALESORDHDR.F_ID = T_SALESORDDTL.F_SALESID  
INNER JOIN  T_ITEM INNER JOIN  SMP_APDTL ON T_ITEM.F_ID = SMP_APDTL.F_ITEMID  
INNER JOIN  T_ITEMTRANSHDR ON SMP_APDTL.F_TRANSID = T_ITEMTRANSHDR.F_ID  
INNER JOIN  T_ITEMTRANSDTL ON SMP_APDTL.F_TRANSDTLID = T_ITEMTRANSDTL.F_ID  
INNER JOIN  T_ITEMADJTYPE ON T_ITEMTRANSDTL.F_ADJTYPE = T_ITEMADJTYPE.F_ID
ON T_SALESORDDTL.F_ITEMID = T_ITEMTRANSDTL.F_ITEMID AND   T_SALESORDDTL.F_SALESID = T_ITEMTRANSDTL.F_SALESID  
INNER JOIN  T_ITEMTRANSTYPE ON T_ITEMTRANSHDR.F_TRANSTYPE = T_ITEMTRANSTYPE.F_ID  
LEFT OUTER JOIN  
  (
T_ARDTL  INNER JOIN T_ARHDR ON T_ARHDR.F_ID=T_ARDTL.F_ARID INNER JOIN T_INVOTYPE ON T_INVOTYPE.F_ID=T_ARHDR.F_INVOTYPE
AND T_INVOTYPE.F_ID = T_INVOTYPE.f_hedgeid) ON SMP_APDTL.F_ID = T_ARDTL.F_SMPID   
left join SMP_PMPC_PMPCAP_Resource on SMP_PMPC_PMPCAP_Resource.F_BillDtlID = SMP_APDTL.F_ID  
left join SMP_PMPC_BPAR_Resource on SMP_PMPC_BPAR_Resource.F_BillDtlID = SMP_APDTL.F_ID  
WHERE  (SMP_APDTL.F_APID = 3116) AND (T_ITEMTRANSTYPE.F_ISINNERBOARD = 0)  
UNION ALL     
SELECT T_ITEM.F_DESC, T_ITEM.F_UNIT, SMP_APDTL.F_ID, SMP_APDTL.F_ITEMID, SMP_APDTL.F_DOCQTY, SMP_APDTL.F_TRANSID,  
CONVERT(numeric(18,4), SMP_APDTL.F_NEWUNITAMT) AS F_NEWUNITAMT,   
CONVERT(numeric(18, 6), SMP_APDTL.F_AMT / SMP_APDTL.F_DOCQTY) AS F_UNITAMT,   CONVERT(numeric(18, 2), SMP_APDTL.F_AMT) AS F_AMT,
CONVERT(numeric(18, 2), SMP_APDTL.F_AMT / 1.17 * 0.17) AS F_TAXAMT,   CONVERT(numeric(18, 2), SMP_APDTL.F_UNITAMT) AS F_FUNITAMT,  
CONVERT(numeric(18, 2), SMP_APDTL.F_UNITAMT * SMP_APDTL.F_DOCQTY)   AS F_FAMT,  
CONVERT(numeric(18, 2), SMP_APDTL.F_AMT) - CONVERT(numeric(18, 2), SMP_APDTL.F_UNITAMT * SMP_APDTL.F_DOCQTY)   AS F_SUBAMT,  
T_ITEMTRANSHDR.F_TRANSDATE, T_ITEM.F_DESC AS F_ITEMCUSTDESC, '' AS F_CUSTORDID, T_ITEMADJTYPE.F_DESC AS ADJDESC,
T_ITEMADJTYPE.F_TRANSTYPE, T_ARDTL.F_ARID , SMP_PMPC_PMPCAP_Resource.F_Target_AP_CreateResult as F_APResult,
SMP_PMPC_BPAR_Resource.F_Source_AR_CreateResult as F_ARResult FROM  T_ITEMTRANSTYPE  
INNER JOIN   T_ITEM INNER JOIN  SMP_APDTL ON T_ITEM.F_ID = SMP_APDTL.F_ITEMID  
INNER JOIN  T_ITEMTRANSHDR ON SMP_APDTL.F_TRANSID = T_ITEMTRANSHDR.F_ID  
INNER JOIN  T_ITEMTRANSDTL ON SMP_APDTL.F_TRANSDTLID = T_ITEMTRANSDTL.F_ID  
INNER JOIN  T_ITEMADJTYPE ON T_ITEMTRANSDTL.F_ADJTYPE = T_ITEMADJTYPE.F_ID ON    
T_ITEMTRANSTYPE.F_ID = T_ITEMTRANSHDR.F_TRANSTYPE LEFT OUTER JOIN  (T_ARDTL  
INNER JOIN T_ARHDR ON T_ARHDR.F_ID=T_ARDTL.F_ARID INNER JOIN T_INVOTYPE ON T_INVOTYPE.F_ID=T_ARHDR.F_INVOTYPE