Re: 請問如何改SQL寫法使效能改善.....

看板Programming作者 (Alien)時間17年前 (2008/03/08 17:10), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串6/6 (看更多)
※ 引述《iquit@kkcity.com.tw ( )》之銘言: : 請問一下,我有段sql執行起來會把伺服器資源 : 吃到99%且做了一個多小時還做不完。我只覺得 : 這段sql join 了太多table(6個)外,我沒有方向 : 該往哪個方面去找尋它效能極差的原因,更別說 : 要改寫它了,可否請高人指點一下......謝謝!! 之前寫 Oracle 的 SQL, DBA 有給過一點 SQL Tuning 基本教學, 可以參考一下: 1) index 要留心,join 的 column 是不是已經設好 index? 2) 某些很特別的情況下, Subquery 反而會比 join 好,但大部份都請盡量 join 3) 盡量用 Union All 而不要用 Union 4) 不要用 in(..), 用 exist(..) e.g. select a.x from A a where a.y not in (select z.y from Z z) 改成 select a.x from A where not exist (select 1 from Z z where z.y = a.y) 之類 5) filtering criteria 盡量把能做出大量篩選的放在前面 6) 把數據量少的table 作為 driving table alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.78.81.71

03/17 01:22, , 1F
03/17 01:22, 1F
文章代碼(AID): #17qiYTf3 (Programming)
討論串 (同標題文章)
文章代碼(AID): #17qiYTf3 (Programming)