SQL優化常用方法12

inzaghi1984發表於2017-12-14
  1. 儘量多使用COMMIT
    只要有可能,在程式中儘量多使用COMMIT, 這樣程式的效能得到提高,需求也會因為COMMIT所釋放的資源而減少: COMMIT所釋放的資源: a. 回滾段上用於恢復資料的資訊. b. 被程式語句獲得的鎖 c. redo log buffer 中的空間
  2. ORACLE為管理上述3種資源中的內部花費
    (譯者按: 在使用COMMIT時必須要注意到事務的完整性,現實中效率和事務完整性往往是魚和熊掌不可得兼)

black_snail (2003-9-7 19:16:56)
如果DECODE取值為NULL,SUM(NULL)的值是NULL –>如果所有的值都是NULL , SUM(NULL) = NULL 但是隻
要有一個值不是NULL,SUM() <> NULL 所以原SQL應該沒有什麼邏輯上的問題
menlion (2003-9-4 12:38:01)
關於第八點的個人看法:如果DECODE取值為NULL,SUM(NULL)的值是NULL,不會正常求和的。可以改成如
下所示就好了: SELECT COUNT(DECODE(DEPT_NO,0020,`X`,NULL)) D0020_COUNT,
COUNT(DECODE(DEPT_NO,0030,`X`,NULL)) D0030_COUNT, SUM(DECODE(DEPT_NO,0020,SAL,0)) D0020_SAL,
SUM(DECODE(DEPT_NO,0030,SAL,0)) D0030_SAL FROM EMP WHERE ENAME LIKE ‘SMITH%`;


相關文章