sybase的SQL多表聯合查詢調優 摘要:在大型項目中關系型數據庫多表聯合查詢是很頻繁的,現在項目上有以下7張表,每張表達數據量也比較小,但是7張表通過多表聯合查詢,查詢的速度卻非常慢,希望能夠給出一個查詢效率比較快的sql。 表1:OPER,字段id,operkey等等(數據量3500) 表2:POLICY,字段id,name等等(數據量5000) 表3:STRATEGY,字段id,name等等(數據量5000) 表4:STRATEGY_APPROVER,字段id,userid,approver等等(數據量50000) 表5:POLICY_OPER(表1和表2的中間表),字段policyid,operid 表6:STRATEGY_POLICY(表2和表3的中間表),字段policyid,strategyid 表7:STRATEGY_APPROVER_RELA(表3和表4的中間表),字段strategyid,strategyapproverid 項目上使用的查詢語句如下: select * from STRATEGY where st.id in ( select * from STRATEGY st inner join STRATEGY_POLICY sp on st.id = sp.strategyid inner join POLICY p on p.id = sp.policyid inner join POLICY_OPER po on po.policyid = p.id inner join OPER o o.id = po.operid inner join STRATEGY_APPROVER_RELA sar on sar.strategyid = st.id inner join STRATEGY_APPROVER sa on sa.id = sar.strategyid where st.id=? and st.name=? and .... and .... and ) 注:以上查詢效率及其慢,已經超過用戶體驗的最差值,希望能夠提供較快的查詢效率的SQL;