【正文】
END。 BEGIN FOR rec_row IN cur_src LOOP UPDATE target SET t_field = WHERE key = 。CLERK39。CLERK39。39。 例: SELECT * FROM dept WHERE deptno = :d。 SQL語句的優(yōu)化規(guī)則 ? 盡量使用共享的 SQL語句 如經(jīng)常使用 : SELECT * FROM dept WHERE deptno=值 如果每一個(gè)‘值’都是常量,則每一次都會(huì)重新解釋,丌能共享內(nèi)存中的 SQL語句優(yōu)化結(jié)果。MANAGER39。 )。 SQL語句的優(yōu)化規(guī)則 ? WHERE子句 OR條件 的過濾原則:應(yīng)使過濾記錄數(shù) 最 有效 的 條件放在 最 前 面 例:如果 emp表上沒有索引 X SELECT ... FROM emp e WHERE 25 ( SELECT count(*) FROM emp WHERE emp_mgr = ) OR ( emp_salary 50000 AND emp_type = 39。 SQL語句的優(yōu)化規(guī)則 ? 續(xù) O SELECT ... FROM emp e WHERE 25 ( SELECT count(*) FROM emp WHERE emp_mgr = ) AND emp_salary 50000 AND emp_type = 39。MANAGER39。Salesman39。Salesman39。 ...... UPDATE t1 SET col2 = ...... WHERE rowid = v_rowid。 O SELECT ... FROM emp WHERE dept_no = 10。 O SELECT dept_code, dept_name FROM dept d WHERE EXISTS ( SELECT ‘X’ FROM emp e WHERE = )。A39。 )。 FROM dept WHERE dept_no = AND dept_cat = 39。 SQL語句的優(yōu)化規(guī)則 ? 考慮 用多表連接代替 EXISTS子句 例: X SELECT ...... FROM emp e WHERE EXISTS ( SELECT 39。A39。X39。)。 SQL語句的優(yōu)化規(guī)則 ? 使用 表的別名來引用列 例: X SELECT abc002, abd003 FROM ab001, ab020 WHERE = ...... O SELECT , FROM ab001 t1, ab020 t2 WHERE = ...... SQL語句的優(yōu)化規(guī)則 ? 考慮 用 NOT EXISTS代替 NOT IN 例: X SELECT ...... FROM emp WHERE dept_no NOT IN ( SELECT dept_no FROM dept