動態SQL可以用綁定變量提高性能

在PL/SQL中,會把INSERT,UPDATE,DELETE和SELECT中的變量自動轉成綁定變量,這樣語句就可以更有效率地運行。當構建這些語句的動態SQL時,你就必須為這些語句指定綁定的變量。

 

下面的例子,Oracle為每個不同的emp_id值打開不同的游標,這會導致資源競爭和低性能,因為每個語句都被解釋和緩存。

CREATE PROCEDURE fire_employee (emp_id NUMBER) AS BEGIN EXECUTE IMMEDIATE 'DELETE FROM employees WHERE employee_id = ' || TO_CHAR(emp_id); END; /

 

可以用綁定變量來提高性能,綁定變量可以讓Oracle為不同emp_id值重用相同的游標。

CREATE PROCEDURE fire_employee (emp_id NUMBER) AS BEGIN EXECUTE IMMEDIATE 'DELETE FROM employees WHERE employee_id = :id' USING emp_id; END; /

你可能感兴趣的:(Oracle,-,PL/SQL,sql,delete,oracle,insert)