PL/SQL haqida boshlang‘ich ma’lumotlarga ega bo‘ldingiz, demak bu til asosan protsedura va funksiyalar yaratish uchun ishlatilar ekan. Bu maqolada PL/SQL kodlari Oracle serverida qanday ishlashini yozib o‘taman.

Dastlab, kliyent-server texnologiyasi qanday ishlashini ko‘ramiz. Oracle ma’lumotlar bazasini boshqarish tizimida, oracle server bo‘lib, unga so‘rovlar TNS xizmati orqali keladi. Bu xizmat, tarmoqdagi so‘rovlarni qabul qilib, ketma-ketlikda serverga jo‘natadi. Kliyent tomonda, xar hil turdagi muhitda yaratilgan kliyent dasturlar bo‘lishi mumkin.

klient-server

Bu rasmda ko‘rinib turibdiki, kliyent sifatida, sql*plus, app.server(weblogic), xar hil dasturlash tillarida tuzilgan dasturlar va hakazolar ko‘rsatilgan. Bular serverga ma’lum bir so‘rov, ya’ni bazadan kerakli ma’lumot olish uchun so‘rov jo‘natib, kerakli natijani xatosiz olishga intilishadi. Bu tizimda eng asosiy muammo tarmoq trafigi hisoblanadi. Tarmoqning ishlash tezligi yetarli darajada katta va xatosiz bo‘lishi kerak, aks holda bazadagi ma’lumotlarning noturg‘unligi kuzatilishi mumkin. Kliyentlar sonining ko‘pligi va xar hilligi hisobiga, tarmoqqa katta yuklama tushadi va buni o‘z vaqtida nazorat qilib, sodir bo‘ladigan xatoliklarni oldini olishi lozim.

PL/SQL bloki(kodi) oracle serveriga yetib borgandan so‘ng, u yerda kompilyatsiya qilinadi va ishlashga tayyor holga keltiriladi. Shundan so‘ng, PL/SQL blogi skanerlanadi va sql kodlar alohida, pl/sql kodlar alohida qilinadi. SQL kodlar SQL Statement Executor nomli sql kodlarini bajaruvchi tizimga beradi va natijani kutishni boshlaydi. SQL Statement Executor sql kodlarni bajarib natijani pl/sql kodlarni bajaruvchi tizimga beradi va pl/sql kodlar bajarilishni boshlaydi va bu kodni(funksiya yoki protsedura) SGA xotirada saqlaydi. Shu nomli funksiya yoki protsedura chaqirilganda, SGA xotiradan tayyor kod chaqirilib, ishlatiladi.

PLSQL

Demak, pl/sql kod yozilib, serverda kompilyatsiya qilinib, sga xotirada saqlanadi va bu kod doimiy serverda saqlanuvchi protseduraga aylanadi(хранимый процедура). Keyingi safar shu protsedura chaqirilganda, SGA xotiradan chaqiriladi va ishlatiladi(qayta yozilmaydi).

PL/SQL kodlarini bunday ishlatish, serverga tushadigan yuklamalarni kamaytiradi va aktiv tranzaksiyalarni sonini qisqartiradi.

 Agar siz bir necha SQL kodlarni serverga jo‘natsangiz(SQL komandalarni o‘zini, PL/SQL ni emas), har biri alohida aktiv tranzaksiya bo‘ladi, server har biri uchun alohida SGA qismdan joy ajratib, alohida natija berish kerak bo‘ladi.

Agar PL/SQL kodlardan foydalansangiz, PL/SQL kodlari ichidagi SQL  kodlar, bitta tranzaksiyada bajariladi va natija bittada beriladi.

PLSQl_SQL

Ko‘rib turganingizdek, PL/SQL kodlarida, xotirada saqlanuvchi protseduralar tuzib ishlash, ham tartibli, ham server uchun qulay hisoblanadi. Albatta, agar siz ishlaydigan baza katta hajmga ega bo‘lib, so‘rovlar tez – tez amalga oshiriladigan bo‘lsa. Keyingi maqolalarda, xotirada saqlanuvchi protseduralarni tuzishni boshlaymiz, ya’ni PL/SQL  kodlarini o‘rganamiz.