【正文】
謝 謝!演講完畢,謝謝觀看!。 COMMIT 只要有可能 ,在程序中盡量多使用 COMMIT, 這樣程序的性能得到提高 ,需求也會因為 COMMIT所釋放的資源而減少 : COMMIT所釋放的資源 :a. 回滾段上用于恢復(fù)數(shù)據(jù)的信息 .b. 被程序語句獲得的鎖Oracle SQL優(yōu)化用 Where子句替換 HAVING子句 避免使用 HAVING子句 , HAVING 只會在檢索出所有記錄之后才對結(jié)果集進行過濾 . 這個處理需要排序 ,總計等操作 . 如果能通過 WHERE子句限制記錄的數(shù)目 ,那就能減少這方面的開銷 . 例如 : 低效 : SELECT REGION, AVG(LOG_SIZE) FROM LOCATION GROUP BY REGION HAVING REGION != ‘SYDNEY’ AND REGION != ‘PERTH’ 高效 SELECT REGION, AVG(LOG_SIZE) FROM LOCATION WHERE REGION REGION != ‘SYDNEY’ AND REGION != ‘PERTH’ GROUP BY REGIONOracle SQL優(yōu)化 EXISTS替代 IN NOT EXISTS替代 NOT IN EXISTS 通常來說 , 采用表連接的方式比 EXISTS更有效率 SELECT ENAME FROM EMP E WHERE EXISTS (SELECT ‘X’ FROM DEPT WHERE DEPT_NO = AND DEPT_CAT = ‘A’)。 SELECT ENAME , SAL FROM EMP WHERE EMPNO = 291。 (高效 ,執(zhí)行時間 ) SELECT … FROM EMP E WHERE 25 (SELECT COUNT(*) FROM EMP WHERE MGR=)AND SAL 50000AND JOB = ‘MANAGER’。Oracle SQL優(yōu)化選擇最有效率的表名順序例如 : 表 TAB1 16,384 條記錄 表 TAB2 1 條記錄 End。Exception when others then when exec_sql_err then var_msg :=sqlcode||sqlerrm。 if sql%notfound then raise exec_sql_err。 var_msg varchar(255)。Oracle 異常處理? 異常的處理 ? PL/SQL程序塊的異常部分包含了程序處理錯誤的代碼,當(dāng)異常被拋出時,一個異常陷阱就自動發(fā)生,程序控制離開執(zhí)行部分轉(zhuǎn)入異常部分 ,一旦程序進入異常部分就不能再回到同一塊的執(zhí)行部分。異常的拋出 由三種方式拋出異常 1. 通過 PL/SQL運行時引擎 2. 使用 RAISE語句 (RAISE exception_name。Oracle 異常處理 異常的優(yōu)點 如果沒有異常,在程序中,應(yīng)當(dāng)檢查每個命令的成功還是失敗。 table1, * (+)=。 b a, from select union where table2 table1 * (+)=。 b a, from LEFT JOIN table2 B ON =Oracle中 Join用法? right join(右聯(lián)接 ) 返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄? select table1 A ? SELECT * FROM =(+)。 b a, from INNER JOIN table2 B ON =Oracle中 Join用法? left join(左聯(lián)接 ) 返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄? select Table1 a,Table2 b where =2. Select