bind variables – ს “მნიშვნელობა” Oracle – ში


რა გზას გადის ჩვენი sql – სანამ შედეგს მივიღებთ?
რატომ არის აუცილებელი ცვლადების მიბაინდება?

მინდა მოკლედ აგიხსნათ თუ როგორ მუშაობს ეს ყველაფერი.
მას შემდეგ რაც ჩვენ sql კოდს გავუშვებთ შესრულებაზე, ხდება კოდის პარსინგი, პლანინგი, ჰეშირება და ა.შ… მხოლოდ ამის შემდეგ მიმდინარეობს მისი შესრულება. იმედია გესმით Oracle – თვის რა დიდი ჯაფაა ნახსენები პროცესების გავლა. აქედან გამომდინარე დროის დიდი ნაწილი sql – ის გაშვებიდან იკარგება სწორედ ამ პროცესებზე… ამ ყველაფერს ერთვის გადამოწმების და ჩანაცვლების პროცესი.

უფრო გასაგებად რომ ავხსნათ, თავდაპირველად ხდება გადამოწმება library cache – ში მსგავსი query (ჰეში) უკვე ხომ არ ინახება, თუ არა გადის აღნიშნულ პროცესებს და ინახება შემდეგში სწრაფი და ნაკლები რესურსული დანაკარგებით შესასრულებლად. რადგან ულიმიტო არაფერია library cache – საც აქვს გარკვეული ზომა… მისი გადავსების შემდეგ ხდება ე.წ. ჩანაცვლების პროცესი… იღებს ყველაზე ძველ გამოყენებულს და ანაცვლებს ახლით.

მაშინ როდესაც ჩვენ პირდაპირ მნიშვნელობებს ვიყენებთ (ბაინდინგის გარეშე), ჰეში მუდმივად განსხვავებული გვაქვს (ძალიან ხშირი შემთქვევაა დინამიურ sql – ში) და აღწერილი პროცესიც გამუდმებით მიმდინარეობს. ვკარგევთ დროსა და რესურს!

ასე რომ გაითვალისწინეთ.
გისურვებთ წარმატებებს 😉

დატოვეთ კომენტარი