اوریکل انڈیکس بنائیں

Awrykl An Yks Bnayy



اوریکل ڈیٹا بیس میں، ایک انڈیکس ڈیٹا کے ڈھانچے سے مراد ہے جو ڈیٹا بیس ٹیبل پر ڈیٹا کی بازیافت کی کارروائیوں کی رفتار کو آگے بڑھاتا ہے۔ تاہم، یہ آپ کے ڈیٹا بیس پر اضافی تحریری کارروائیوں اور اسٹوریج کی جگہ کے جرمانے پر آسکتا ہے۔

ڈیٹا بیس انڈیکس کہاں مفید ہوگا اس کی ایک مثال کسٹمر ریلیشن شپ مینجمنٹ سسٹم میں ہے۔







ایسے نظام میں، ہمارے پاس ایک ڈیٹا بیس ٹیبل ہو سکتا ہے جو گاہک کی معلومات کو ذخیرہ کرتا ہے۔ اس میں نام، پتہ، ادائیگی کے طریقے، رابطے کی معلومات وغیرہ شامل ہو سکتے ہیں۔



اگر ٹیبل میں بہت سے ریکارڈ ہیں، شاید ان میں سے لاکھوں، ڈیٹا بیس سے مخصوص کسٹمر کی معلومات کو تلاش کرنے میں کافی وقت اور وسائل لگ سکتے ہیں۔ یہ ایک منفی رجحان ہے، خاص طور پر ڈیٹا بیس میں جہاں کارکردگی اہم ہے۔



اس کے گرد گھومنے پھرنے کے لیے، ہم ڈیٹا بیس انڈیکس استعمال کر سکتے ہیں۔





مثال کے طور پر، ہم گاہک کے نام کے کالم پر ایک انڈیکس بنا سکتے ہیں جو ڈیٹا بیس سسٹم کو نام کا استعمال کرتے ہوئے کسی مخصوص صارف کی معلومات کو تیزی سے تلاش کرنے اور بازیافت کرنے کی اجازت دے گا۔ لہذا، ٹیبل میں تمام قطاروں اور کالموں سے گزرنے والے ڈیٹا بیس انجن کے بجائے، یہ صرف انڈیکس کا استعمال کسٹمر کی معلومات کو تلاش کرنے کے لیے کرتا ہے۔

اس ٹیوٹوریل میں، آپ سیکھیں گے کہ نیا انڈیکس شروع کرنے کے لیے اوریکل ڈیٹا بیس میں CREATE INDEX کمانڈ کو کیسے استعمال کیا جائے۔



اوریکل انڈیکس اسٹیٹمنٹ بنائیں

مندرجہ ذیل اوریکل ڈیٹا بیس میں CREATE INDEX اسٹیٹمنٹ کا نحو دکھاتا ہے:

INDEX index_name بنائیں
آن ٹیبل_نام (کالم 1، کالم 2، ...)؛

مندرجہ بالا نحو ٹیبل پر index_name کے نام سے ایک انڈیکس بناتا ہے جس میں table_name نام کے ساتھ مخصوص کالم (کالم 1، کالم 2، وغیرہ) کو انڈیکس کی کلید کے طور پر استعمال کیا جاتا ہے۔

اوریکل میں، ایک بنیادی کلید ایک کالم یا کالموں کا سیٹ ہے جو ٹیبل میں ہر قطار کی منفرد شناخت کرتا ہے۔ پہلے سے طے شدہ طور پر، اوریکل خود بخود ٹیبل کے بنیادی کلیدی کالموں پر منفرد انڈیکس بناتا ہے تاکہ انفرادیت کی رکاوٹ کو نافذ کیا جا سکے اور بنیادی کلیدی تلاش کی کارکردگی کو بہتر بنایا جا سکے۔

تاہم، بعض صورتوں میں، آپ کو ایک مخصوص ٹیبل کے لیے دستی طور پر ایک نیا انڈیکس بنانے کی ضرورت پڑ سکتی ہے۔

آئیے کچھ مثالوں پر نظر ڈالیں کہ ہم اس کو کیسے پورا کر سکتے ہیں۔

اوریکل انڈیکس کی مثال بنائیں

فرض کریں کہ ہمارے پاس ملازم کی معلومات پر مشتمل ایک ٹیبل ہے جیسا کہ ذیل میں آؤٹ پٹ میں دکھایا گیا ہے:

پہلا_نام، آخری_نام، تنخواہ، ملازمین سے کرایہ کی_تاریخ منتخب کریں۔

اوریکل ایک کالم کے لیے انڈیکس بنائیں

فرض کریں کہ ہم first_name کالم کا استعمال کرتے ہوئے ایک انڈیکس بنانا چاہتے ہیں۔ ہم ایک سوال چلا سکتے ہیں جیسا کہ دکھایا گیا ہے:

EMPLOYEES(FIRST_NAME) پر انڈیکس first_name_lookup بنائیں؛

یہ CREATE INDEX سٹیٹمنٹ FIRST_NAME کالم کو انڈیکس کی کلید کے طور پر استعمال کرتے ہوئے EMPLOYEES ٹیبل پر first_name_lookup کے نام سے ایک انڈیکس بناتا ہے۔ یہ انڈیکس ان سوالات کی کارکردگی کو بہتر بنانے کے لیے استعمال کیا جا سکتا ہے جو ملازمین کو ان کے پہلے نام سے تلاش کرتے ہیں۔

ایک بار جب ہمارے پاس انڈیکس بن جاتا ہے، تو ہم اسے کسی مخصوص ملازم کی تلاش کے لیے استعمال کر سکتے ہیں جیسا کہ دکھایا گیا ہے:

پہلا_نام، آخری_نام، تنخواہ، ہائر_تاریخ منتخب کریں۔
ملازمین سے
WHERE first_name = 'ولیم';

نتیجہ:

first_name_lookup انڈیکس کے بغیر، ڈیٹا بیس سسٹم کو وہ تمام قطاریں تلاش کرنے کے لیے پورے EMPLOYEES ٹیبل کو اسکین کرنا پڑے گا جہاں FIRST_NAME کالم 'ولیم' کے برابر ہے۔ تاہم، انڈیکس کی جگہ کے ساتھ، ڈیٹا بیس سسٹم تیزی سے قطاروں کو تلاش کر سکتا ہے۔ 'جان' ویلیو کو کلید کے طور پر استعمال کرتے ہوئے انڈیکس کریں اور پھر ٹیبل سے مطلوبہ قطاروں کو بازیافت کریں، جو بہت تیز ہوں گی۔

آپ وضاحت پلان کمانڈ کا استعمال کرتے ہوئے استفسار کرتے وقت استعمال کیے گئے اقدامات دیکھ سکتے ہیں جیسا کہ دکھایا گیا ہے:

پہلے_نام، آخری_نام، تنخواہ، ہائر_تاریخ منتخب کرنے کے منصوبے کی وضاحت کریں۔
ملازمین سے
WHERE first_name = 'ولیم';

نتیجہ خیز استفسار کا منصوبہ:

مثال 2 - اوریکل ایک سے زیادہ کالموں کے ساتھ انڈیکس بنائیں

اسی طرح، ہم دیے گئے ٹیبل میں ایک سے زیادہ کالموں پر مشتمل ایک انڈیکس بنا سکتے ہیں۔ مثال کے طور پر، فرض کریں کہ ہم پہلے_نام اور آخری_نام کے کالم پر مشتمل ایک انڈیکس بنانا چاہتے ہیں۔

ہم کوڈ کو استعمال کر سکتے ہیں جیسا کہ دکھایا گیا ہے:

EMPLOYEES(FIRST_NAME, LAST_NAME) پر انڈیکس ملٹی_لوک اپ بنائیں؛

یہ CREATE INDEX سٹیٹمنٹ EMPLOYEES ٹیبل پر ملٹی_لوک اپ کے نام سے ایک انڈیکس بناتا ہے، FIRST_NAME اور LAST_NAME کالمز کو انڈیکس کی کلید کے طور پر استعمال کرتا ہے۔

ایک بار بننے کے بعد، ہم اس انڈیکس کو استعمال کر سکتے ہیں جیسا کہ نمونہ کے استفسار میں دکھایا گیا ہے:

پہلا_نام، آخری_نام، تنخواہ، ہائر_تاریخ منتخب کریں۔
ملازمین سے
جہاں پہلا_نام = 'ولیم' اور آخری_نام = 'اسمتھ'؛

نتیجہ خیز قدر:

اور وہاں، آپ کے پاس تلاش کے دائرہ کار کو محدود کرنے کے لیے اشاریہ جات کا استعمال کرکے اپنے ڈیٹا بیس کے سوالات کو تیز کرنے کا طریقہ ہے۔

نتیجہ

Oracle میں CREATE INDEX اسٹیٹمنٹ ہمیں ڈیٹا کی بازیافت کی کارروائیوں کی کارکردگی کو بہتر بنانے کے لیے میز پر ایک انڈیکس بنانے کی اجازت دیتا ہے۔ تاہم، اگرچہ اشاریہ جات استفسار کی کارکردگی کو بہتر بنا سکتے ہیں، لیکن ان پر سٹوریج کی جگہ کے جرمانے بھی لگتے ہیں، جس کی وجہ سے لکھنے کی رفتار کم ہو جاتی ہے، انہیں صرف ضرورت کے وقت استعمال کریں۔