Table Variables T-SQL (Transact-SQL)-এ একটি বিশেষ ধরনের ভেরিয়েবল যা অস্থায়ী টেবিলের মতো কাজ করে, তবে এটি স্কোপ বা লাইফটাইম এর দিক থেকে ভিন্ন। টেবিল ভেরিয়েবলস সাধারণত ছোট আকারের ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়, যেগুলি খুব বেশি সময় ধরে সংরক্ষণ করতে হয় না এবং যেগুলি শুধুমাত্র একটি নির্দিষ্ট স্কোপের মধ্যে ব্যবহৃত হয়।
Table Variables সাধারণত DECLARE কিওয়ার্ডের মাধ্যমে ডিফাইন করা হয় এবং তাদের INSERT, UPDATE, SELECT ইত্যাদি অপারেশন করার জন্য ব্যবহার করা যায়।
Table Variable এর সিনট্যাক্স:
DECLARE @TableVariableName TABLE
(
Column1 DataType,
Column2 DataType,
...
);
এখানে:
- @TableVariableName: টেবিল ভেরিয়েবলের নাম, যা
@চিহ্ন দিয়ে শুরু হয়। - Column1, Column2, ...: টেবিলের কলামগুলো এবং তাদের ডেটা টাইপ।
Table Variables ব্যবহার করা
১. Table Variable ডিক্লেয়ার করা
DECLARE @Employees TABLE
(
EmployeeID INT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Department VARCHAR(50)
);
এখানে একটি টেবিল ভেরিয়েবল @Employees ডিফাইন করা হয়েছে, যার মধ্যে চারটি কলাম রয়েছে: EmployeeID, FirstName, LastName, এবং Department।
২. ডেটা ইনসার্ট করা
Table Variable এ ডেটা ইনসার্ট করার জন্য INSERT INTO ব্যবহার করা হয়:
INSERT INTO @Employees (EmployeeID, FirstName, LastName, Department)
VALUES (1, 'John', 'Doe', 'HR'),
(2, 'Jane', 'Smith', 'IT'),
(3, 'Robert', 'Johnson', 'Finance');
এটি @Employees টেবিল ভেরিয়েবলে তিনটি রেকর্ড ইনসার্ট করবে।
৩. ডেটা নির্বাচন (SELECT)
Table Variable থেকে ডেটা নির্বাচন করতে SELECT কমান্ড ব্যবহার করা হয়:
SELECT * FROM @Employees;
এটি @Employees টেবিল ভেরিয়েবল থেকে সমস্ত রেকর্ড নির্বাচন করবে।
৪. ডেটা আপডেট করা
Table Variable এ ডেটা আপডেট করতে UPDATE কমান্ড ব্যবহার করা হয়:
UPDATE @Employees
SET Department = 'Marketing'
WHERE EmployeeID = 2;
এটি @Employees টেবিল ভেরিয়েবল থেকে EmployeeID 2 এর জন্য Department কলামের মান আপডেট করবে।
৫. ডেটা মুছে ফেলা (DELETE)
Table Variable থেকে ডেটা মুছে ফেলতে DELETE কমান্ড ব্যবহার করা হয়:
DELETE FROM @Employees WHERE EmployeeID = 3;
এটি @Employees টেবিল ভেরিয়েবল থেকে EmployeeID 3 এর রেকর্ডটি মুছে ফেলবে।
Table Variables এর সুবিধা
- কমপ্যাক্ট এবং দ্রুত:
- Table Variables সাধারণত ছোট ডেটা সেটের জন্য বেশি কার্যকরী এবং এগুলি দ্রুত এক্সিকিউট হয়।
- বড় অস্থায়ী টেবিলের তুলনায় এদের মেমোরি ব্যবহার তুলনামূলকভাবে কম হয়।
- ট্রানজ্যাকশন সাপোর্ট:
- Table Variables ট্রানজ্যাকশন ব্লকের মধ্যে ব্যবহার করা যায়, যা তাদের কার্যকারিতা বাড়ায়।
- স্কোপ নিয়ন্ত্রণ:
- Table Variables-এ থাকা ডেটা শুধুমাত্র সেই স্কোপের মধ্যে জীবিত থাকে যেখানে তা ডিক্লেয়ার করা হয়েছে। অর্থাৎ, স্কোপ শেষে এই ভেরিয়েবল স্বয়ংক্রিয়ভাবে ডিলিট হয়ে যায়।
- ইনডেক্সিং এবং কনস্ট্রেইন্ট:
- Table Variables ইনডেক্সিং এবং কনস্ট্রেইন্ট সমর্থন করে না, তবে কিছু নির্দিষ্ট শর্তের জন্য উপযুক্ত।
- তুলনামূলকভাবে সহজ ব্যবস্থাপনা:
- Table Variables সাধারণত অস্থায়ী টেবিলের তুলনায় কম ব্যবস্থাপনা এবং ডিস্ক স্পেস ব্যবহার করে, যা কর্মক্ষমতা উন্নত করে।
Table Variables এর সীমাবদ্ধতা
- ইনডেক্সিং:
- Table Variables সাধারণত ইনডেক্স বা কনস্ট্রেইন্ট সমর্থন করে না। এটি একটি বড় সীমাবদ্ধতা হতে পারে যখন বৃহত আকারের ডেটা ব্যবস্থাপনা করতে হয়।
- ডেটা সাইজ:
- Table Variables ডেটা সাইজের জন্য কিছু সীমাবদ্ধতা থাকে। সাধারণত খুব বড় ডেটাসেটের জন্য Temporary Tables ব্যবহার করা শ্রেয়।
- পারফরম্যান্স সমস্যা:
- যখন টেবিল ভেরিয়েবলগুলো খুব বড় হয়ে যায়, তখন সেগুলোর পারফরম্যান্স কিছুটা কমে যেতে পারে, বিশেষত যখন এগুলো JOIN বা অন্যান্য জটিল অপারেশনে ব্যবহৃত হয়।
Table Variables ব্যবহারের ক্ষেত্র
- স্বল্প আকারের ডেটা সংরক্ষণ:
- সাধারণত Table Variables ছোট আকারের ডেটার জন্য উপযুক্ত, যেমন একটি স্টোরড প্রসিডিউর বা ফাংশনের মধ্যে ম্যানিপুলেশন করা ডেটা।
- অস্থায়ী ডেটা কাজ:
- যখন আপনি কিছু অস্থায়ী ডেটা ব্যবহার করছেন যেগুলি শুধুমাত্র একটি নির্দিষ্ট স্কোপে প্রয়োজন, তখন Table Variables ব্যবহার করা যেতে পারে।
- ডেটা বিশ্লেষণ:
- ছোট ডেটা সেটের বিশ্লেষণ করার জন্য এটি উপযুক্ত। উদাহরণস্বরূপ, পছন্দের কোন ডেটা নির্বাচন এবং তার পরিপ্রেক্ষিতে কিছু হিসাব করা।
- জটিল কুয়েরি স্টেপস:
- জটিল কুয়েরি স্টেপসের মধ্যে অন্তর্বর্তী ডেটা সংরক্ষণ এবং প্রক্রিয়াকরণের জন্য ব্যবহার করা যায়।
সারাংশ
Table Variables T-SQL-এ অস্থায়ী ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়, যেখানে ইনসার্ট, আপডেট, সিলেক্ট, এবং ডিলিট করা যেতে পারে। এগুলি ছোট আকারের ডেটার জন্য উপযুক্ত এবং এগুলোর ব্যবহার সহজ এবং দ্রুত। তবে, ইনডেক্সিং, কনস্ট্রেইন্ট, এবং বড় ডেটা ব্যবস্থাপনায় তাদের কিছু সীমাবদ্ধতা রয়েছে, যেখানে অস্থায়ী টেবিল (Temporary Tables) বেশি কার্যকরী হতে পারে।
Read more