निम्नलिखित बयानों
select name from T_emp where id=1;
select name from T_emp where id=2;
select name from T_emp where id=3;
हर बार एक बयान निष्पादित किया जाता है एक ही क्वेरी के पिछले घटनाओं के लिए Oracle चेकों पर विचार करें। यदि यह वही क्वेरी पाता है, तो यह उसी निष्पादन योजना का उपयोग करता है। यदि नहीं, तो इसे विभिन्न निष्पादन पथ मिलना है, इष्टतम निष्पादन योजना के साथ आना और इसे निष्पादित करना है।
मानव के विपरीत यह समझने के लिए पर्याप्त बुद्धिमान नहीं है कि केवल आईडी बदल गई है (उपर्युक्त उदाहरण के अनुसार)। इसलिए यह सभी संघर्षों से गुजरता है और इसे निष्पादित करता है।
लेकिन ओरेकल को बताने का एक तरीका है कि यह एक समान कथन है और यह उसी निष्पादन योजना का उपयोग कर सकता है - BIND VARIABLE। कृपया नीचे दिया गया उदाहरण पाएं:
declare
v_id number;
v_name varchar2(30);
type c is ref cursor;
c1 c;
begin
for i in 1..100
loop
open c1 for 'select * from T_emp where id = :x' using i;
fetch c1 into v_name;
dbms_output.put_line('name is ' || v_name);
end loop;
END;
बाइंड चर का उपयोग करके प्रदर्शन दस गुना सुधारने में मदद मिलती है। पीएल/एसक्यूएल अपने आप पर बाइंड वैरिएबल का उपयोग करता है (आपको स्पष्ट रूप से इसे बताने की ज़रूरत नहीं है)
इसे "कोलन" कहा जाता है, एक ";" एक अर्ध-कॉलन है। –