sybase的SQL多表聯合查詢調優

2022-04-08 20:32:11 字數 1055 閱讀 1228

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;

CakePHP 使用JOIN進行多表聯合查詢

在 select,update 和 delete 語句中可以使用 join 來進行多表聯合查詢,join按照功能分為以下三類 例如有以下三張資料表,它們之間沒有關聯關係,但都有city code字段 現需要從三張資料表中聯合查詢,原始sql語句如下 select a.city name,b.city...

oracle(15) SQL 多表聯合查詢

外連線 左右連線 左右連線 範例 查詢出每乙個部門的員工 範例 左連線 範例 右連線 範例 查詢出所有員工的上級領導 以上操作完整原始碼 查詢所有部門 select from dept d 查詢所有部門下的員工 select from emp e order by deptno 查詢員工 部門資訊 ...

SQL學習 用JOINs進行多表聯合查詢

練習題 1 找到所有電影的國內domestic sales和國際銷售額 個人感覺標題不對,應該 找到 統計所有電影的全部資料 更合適點 select from movies inner join boxoffice on movies.id boxoffice.movie id2 找到所有國際銷售額...