Stored Procedures হল একটি বা একাধিক SQL স্টেটমেন্টের সমষ্টি, যা ডেটাবেসে সংরক্ষিত এবং প্রি-কম্পাইলড থাকে। এগুলি নির্দিষ্ট কাজ বা কার্যকলাপ সম্পাদন করার জন্য ব্যবহৃত হয় এবং সাধারণত SQL অথবা PL/SQL ভাষায় লেখা হয়। DB2 তে Stored Procedures ব্যবহৃত হয় ডেটাবেস অপারেশন অটোমেট করতে, পারফরম্যান্স উন্নত করতে, এবং পুনরাবৃত্তি করা কুয়েরি বা লজিক এক স্থানে সংরক্ষণ করে কোড পুনঃব্যবহারযোগ্য করতে।
Stored Procedures এর সুবিধা
- কোড পুনঃব্যবহারযোগ্যতা: Stored Procedure একবার তৈরি করে পরবর্তীতে বার বার ব্যবহার করা যায়, যেটি কোড পুনঃব্যবহারের সুবিধা দেয়।
- পারফরম্যান্স উন্নয়ন: DB2 Stored Procedures প্রি-কম্পাইলড হওয়ায় এগুলি দ্রুত সম্পাদিত হয়, যা কুয়েরি প্রক্রিয়াকরণের গতি বৃদ্ধি করে।
- ডেটাবেস সুরক্ষা: Stored Procedure এর মাধ্যমে, ব্যবহারকারীরা সরাসরি ডেটাবেস অবজেক্টে অ্যাক্সেস করতে পারে না; তারা শুধুমাত্র প্রি-ডিফাইন্ড স্টোরড প্রসিডিউরগুলির মাধ্যমে ডেটাবেসের সঙ্গে ইন্টারঅ্যাক্ট করতে পারে।
- ডেটাবেস লজিক সার্ভার সাইডে রাখে: এটি ডেটাবেসের লজিক সার্ভার সাইডে রাখার মাধ্যমে ক্লায়েন্ট সাইডের লোড কমিয়ে দেয়।
DB2 তে Stored Procedures তৈরি
DB2 তে Stored Procedure তৈরি করার জন্য CREATE PROCEDURE স্টেটমেন্ট ব্যবহার করা হয়। সাধারণত, একটি Stored Procedure তৈরি করতে SQL ভাষায় স্টেটমেন্ট লিখতে হয়, এবং প্রয়োজনে PL/SQL ব্যবহার করা যেতে পারে।
উদাহরণ: একটি Stored Procedure তৈরি করা
ধরা যাক, আমাদের একটি employees টেবিল রয়েছে, এবং আমরা একটি Stored Procedure তৈরি করতে চাই যা একটি নির্দিষ্ট employee_id অনুযায়ী employee_name ফেরত দিবে।
CREATE PROCEDURE get_employee_name(IN emp_id INT, OUT emp_name VARCHAR(100))
LANGUAGE SQL
BEGIN
SELECT employee_name
INTO emp_name
FROM employees
WHERE employee_id = emp_id;
END;
এখানে:
IN emp_id INT
: এটি ইনপুট প্যারামিটার, যা employee_id
নেওয়ার জন্য ব্যবহৃত হবে।OUT emp_name VARCHAR(100)
: এটি আউটপুট প্যারামিটার, যা employee_name
ফেরত দেবে।- LANGUAGE SQL: এটি নির্দেশ করে যে Stored Procedure টি SQL ভাষায় লেখা হয়েছে।
- BEGIN...END: এই ব্লকের মধ্যে SQL স্টেটমেন্টগুলি থাকবে যা স্টোরড প্রসিডিউরের কার্যকলাপ নির্ধারণ করবে।
DB2 তে Stored Procedures ব্যবহার
Stored Procedure ব্যবহার করতে হলে, সেগুলিকে CALL কমান্ড দিয়ে ডাকা হয়। এর মাধ্যমে আপনি নির্দিষ্ট প্যারামিটার পাঠিয়ে স্টোরড প্রসিডিউর চালাতে পারেন।
উদাহরণ: Stored Procedure কল করা
ধরা যাক, আমরা আগের get_employee_name
স্টোরড প্রসিডিউরটি কল করতে চাই:
DECLARE emp_name VARCHAR(100);
CALL get_employee_name(101, emp_name);
SELECT emp_name FROM SYSIBM.SYSDUMMY1;
এখানে:
- DECLARE: এটি একটি ভ্যারিয়েবল ঘোষণা করে, যা আউটপুট হিসেবে ব্যবহার করা হবে।
- CALL get_employee_name(101, emp_name): এই কমান্ডটি Stored Procedure কল করে, যেখানে
101
হলো ইনপুট প্যারামিটার (employee_id) এবং emp_name
আউটপুট প্যারামিটার হিসেবে কাজ করবে। - SELECT: আউটপুটের মান পরীক্ষা করতে, আমরা
SYSIBM.SYSDUMMY1
টেবিল থেকে emp_name
ভ্যারিয়েবল নির্বাচন করেছি।
Stored Procedures এর সুবিধা এবং ব্যবহার
1. প্যারামিটার ব্যবহার:
- Stored Procedure-এ প্যারামিটার ব্যবহার করে, আপনি ইনপুট এবং আউটপুট কাস্টমাইজ করতে পারেন।
- DB2-তে IN, OUT, এবং INOUT প্যারামিটার রয়েছে:
- IN: ইনপুট প্যারামিটার, যা স্টোরড প্রসিডিউরে ডেটা পাঠানো হয়।
- OUT: আউটপুট প্যারামিটার, যা স্টোরড প্রসিডিউর থেকে ডেটা ফেরত আনে।
- INOUT: এই প্যারামিটারটি ইনপুট এবং আউটপুট হিসেবে কাজ করে।
2. বিভিন্ন কার্যকলাপ সম্পাদন:
- DB2-এ স্টোরড প্রসিডিউর ব্যবহার করে আপনি জটিল কুয়েরি, ডেটাবেস অপারেশন, টানেলিং, লজিক্যাল অপারেশন ইত্যাদি একযোগভাবে পরিচালনা করতে পারেন।
3. ব্যবহারিক উদাহরণ:
- পণ্য পরিসংখ্যান: একটি স্টোরড প্রসিডিউর তৈরি করতে পারেন যা পণ্যের মোট বিক্রয়, গড় মূল্য ইত্যাদি গণনা করবে।
- বিক্রেতার ডেটা বিশ্লেষণ: একটি স্টোরড প্রসিডিউর তৈরি করা যেতে পারে যা বিক্রেতার উপর নির্ভরশীল তথ্য বের করবে যেমন কোন বিক্রেতার কী পরিমাণ পণ্য বিক্রি হয়েছে।
Stored Procedures এর পারফরম্যান্স অপ্টিমাইজেশন
- প্রি-কম্পাইলড কোড:
- স্টোরড প্রসিডিউর সাধারণত প্রি-কম্পাইলড হয়, যার ফলে এটি দ্রুত কার্যকরী হয় কারণ কোডটি আগে থেকেই কম্পাইল হয়ে ডেটাবেস সার্ভারে সংরক্ষিত থাকে।
- ফাংশন এবং ট্রিগার ব্যবহার:
- আপনি Stored Procedures এর মধ্যে functions এবং triggers ব্যবহার করতে পারেন যাতে আরও উন্নত পারফরম্যান্স এবং কার্যকারিতা পাওয়া যায়।
- ক্যাশিং:
- DB2 ক্যাশিং ব্যবহার করে স্টোরড প্রসিডিউরের পারফরম্যান্স উন্নত করতে পারে, যার ফলে বারবার একই কাজের জন্য সিস্টেম পুনরায় কাজ করতে হবে না।
সারসংক্ষেপ
DB2 তে Stored Procedures তৈরি এবং ব্যবহার করা হয় ডেটাবেসে কার্যক্রম অটোমেট করার জন্য এবং কোড পুনঃব্যবহারযোগ্যতা বাড়ানোর জন্য। এটি ডেটাবেস অপারেশনগুলি দ্রুত করতে সহায়ক এবং ডেটাবেসের সিকিউরিটি উন্নত করে। Stored Procedures তৈরি করার জন্য CREATE PROCEDURE
কমান্ড ব্যবহার করা হয় এবং এগুলিকে কল করার জন্য CALL
কমান্ড ব্যবহার করা হয়। DB2 তে Stored Procedures পারফরম্যান্স উন্নত করতে এবং ডেটাবেস লজিক সার্ভার সাইডে রাখতে কার্যকরী সমাধান।