Temporary Tables তৈরি করা (Local এবং Global)

T-SQL এ টেম্পোরারি টেবিল এবং টেবিল ভেরিয়েবল - টি-এসকিউএল (T-SQL) - Database Tutorials

392

Temporary tables (অস্থায়ী টেবিল) T-SQL-এ একটি গুরুত্বপূর্ণ ফিচার যা ডেটাবেসের মধ্যে সাময়িক ডেটা স্টোরেজের জন্য ব্যবহৃত হয়। এগুলি সাধারণত এমন ডেটার জন্য ব্যবহৃত হয় যা টেবিলের মধ্যে দীর্ঘ সময়ের জন্য রাখা প্রয়োজন হয় না, যেমন ইন্টারিম ফলাফল বা ইন্টারমিডিয়েট হিসাব।

T-SQL-এ দুই ধরনের temporary table রয়েছে:

  1. Local Temporary Table (#)
  2. Global Temporary Table (##)

১. Local Temporary Table (#)

Local temporary tables এমন টেবিল যা session-specific (সেশন ভিত্তিক) এবং একটি নির্দিষ্ট সেশন বা সংযোগে (connection) কার্যকর থাকে। একবার সেশন বন্ধ হলে, এই টেবিলগুলি স্বয়ংক্রিয়ভাবে মুছে যায়।

Local Temporary Table তৈরি এবং ব্যবহার:

CREATE TABLE #TempTable (
    ID INT,
    Name VARCHAR(50)
);

INSERT INTO #TempTable (ID, Name)
VALUES (1, 'Alice'), (2, 'Bob');

SELECT * FROM #TempTable;

-- Local temporary table মুছে ফেলা হবে যদি সেশন বন্ধ হয়

এখানে:

  • #TempTable একটি local temporary table।
  • এটি শুধুমাত্র বর্তমান SQL Server সেশনে উপলব্ধ থাকবে এবং সেশন শেষ হলে এই টেবিলটি মুছে যাবে।

Local Temporary Table এর বৈশিষ্ট্য:

  • Session-specific: টেবিলটি শুধুমাত্র সংশ্লিষ্ট সেশনে দেখা যাবে।
  • Automatic deletion: সেশন শেষ হলে টেবিলটি মুছে যাবে।
  • এটি একাধিক ব্যবহারকারীর জন্য আলাদা থাকবে, এক ব্যবহারকারী অন্য ব্যবহারকারীর টেবিল অ্যাক্সেস করতে পারবে না।

২. Global Temporary Table (##)

Global temporary tables এমন টেবিল যা server-wide (সার্ভার ভিত্তিক) এবং সমস্ত সেশনের জন্য উপলব্ধ। একটি global temporary table তৈরি করার পর, এটি সমস্ত SQL Server সেশনে দেখতে পাওয়া যাবে যতক্ষণ না সব সেশন থেকে এটি মুছে না দেওয়া হয়।

Global Temporary Table তৈরি এবং ব্যবহার:

CREATE TABLE ##GlobalTempTable (
    ID INT,
    Name VARCHAR(50)
);

INSERT INTO ##GlobalTempTable (ID, Name)
VALUES (1, 'John'), (2, 'Jane');

SELECT * FROM ##GlobalTempTable;

-- Global temporary table সেশন বন্ধ হলে মুছে যাবে না, যতক্ষণ না তা explicitly DROP করা হয়

এখানে:

  • ##GlobalTempTable একটি global temporary table।
  • এটি সার্ভারের সব সেশনে অ্যাক্সেসযোগ্য হবে এবং যতক্ষণ না একে DROP করা হয়, এটি সার্ভারে থেকে যাবে।

Global Temporary Table এর বৈশিষ্ট্য:

  • Server-wide: সার্ভারের সমস্ত সেশন (connections) থেকে এটি অ্যাক্সেস করা যাবে।
  • Explicit deletion: সার্ভারের সমস্ত সেশন বন্ধ হওয়ার পরেও এটি মুছে যাবে না, তবে একে ম্যানুয়ালি DROP করতে হবে।
  • এটি সব ব্যবহারকারী দ্বারা অ্যাক্সেসযোগ্য, তবে ব্যবহারকারী শুধুমাত্র অনুমোদিত হলে এটি ম্যানিপুলেট করতে পারে।

৩. Temporary Table এর মধ্যে পার্থক্য

বৈশিষ্ট্যLocal Temporary Table (#)Global Temporary Table (##)
Accessশুধুমাত্র বর্তমান সেশন দ্বারা অ্যাক্সেসযোগ্যসার্ভারের সকল সেশন দ্বারা অ্যাক্সেসযোগ্য
Lifetimeসেশন শেষ হলে মুছে যায়সার্ভারের সমস্ত সেশন থেকে মুছে না গেলে থাকে
Name Visibilityশুধুমাত্র বর্তমান সেশনে দৃশ্যমানসার্ভারের সব সেশনে দৃশ্যমান
Data Scopeশুধুমাত্র সংশ্লিষ্ট সেশনের ডেটাসার্ভারের সকল সেশন থেকে ডেটা অ্যাক্সেসযোগ্য
Auto Dropসেশন বন্ধ হলে স্বয়ংক্রিয়ভাবে মুছে যায়সেশন বন্ধ হলেও মুছে না গিয়ে DROP করতে হবে

৪. Temporary Table ব্যবহার করার সুবিধা

  • Performance: Temporary tables ডেটা প্রক্রিয়াকরণের সময় ইন্টারমিডিয়েট ডেটা রাখে, যা একাধিক কুয়েরি বা রিকোয়েস্টের মধ্যে পুনরায় ব্যবহার করা যেতে পারে।
  • Isolation: Local temporary tables বিভিন্ন ব্যবহারকারীর জন্য আলাদা থাকে, যা তাদের মধ্যে ডেটার সংঘর্ষ এড়ায়।
  • Memory Optimization: বড় ডেটাসেটের সঙ্গে কাজ করার জন্য temporary tables ব্যবহার করা হলে সার্ভারের স্থায়ী টেবিলগুলোর উপর চাপ কমে এবং মেমরি ব্যবহারের কার্যকরী উন্নয়ন হয়।

সারাংশ

Local Temporary Table (#) এবং Global Temporary Table (##) T-SQL এ অস্থায়ী টেবিল তৈরি করার জন্য ব্যবহৃত হয়। Local temporary tables শুধুমাত্র সংশ্লিষ্ট সেশন দ্বারা অ্যাক্সেসযোগ্য হয় এবং সেশন শেষ হলে স্বয়ংক্রিয়ভাবে মুছে যায়। অন্যদিকে, Global temporary tables সার্ভারের সকল সেশন থেকে অ্যাক্সেসযোগ্য এবং সার্ভার বন্ধ না হওয়া পর্যন্ত টেবিলটি থাকে, তবে একে ম্যানুয়ালি DROP করতে হয়। Temporary tables ডেটাবেসে সাময়িক ডেটা পরিচালনা করার জন্য অত্যন্ত কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...