Re: 請問如何改SQL寫法使效能改善.....
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 6 篇):