پارامتر DB_FILE_MULTIBLOCK_READ_COUNT تعداد بلاک هایی که می توانند در هر مرحله از FULL TABLE SCAN با عملیات I/O از دیسک به حافظه منتقل شوند را مشخص می کند البته حداکثر تعداد MULTI BLOCK در زمان اجرا وابسته به پشتیبانی سیستم است. در این متن ویژگی ها و نحوه برخورد اوراکل با این پارامتر را توضیح می دهیم و عملیات خواندن همزمان بلاک ها با یک مثال اجرایی نمایش داده می شود.
انواع SCANهای OPTIMIZER
در دیتابیس اوراکل، OPTIMIZER برای هر دستور SQL مسیرهای دسترسی مختلف به جدول ها را تعیین کرده و با یکدیگر مقایسه می کند تا بهینه ترین مسیر برای EXECUTION PLAN را انتخاب کند. این مقایسه بر اساس آمارهای جمع آوری شده از ایندکس ها و جدول های دیتابیس انجام می شود.
برای هر EXECUTION PLAN مسیر دسترسی نهایی به داده ها با استفاده از عمل SCAN مشخص می شود. در این متن انواع مختلف SCANهای OPTIMIZER توضیح داده می شوند.
شناسایی ایندکس های بی استفاده
ایندکس های بی استفاده سبب ایجاد سربار در عملیات DML می شوند و فضای دیتابیس را هدر می دهند. همانطور که در مطلب روشی برای شناسایی ایندکس های تکراری اشاره شد می توان تعداد موارد بکارگیری ایندکس ها توسط OPTIMIZER در بازه های زمانی گذشته را استخراج کرد و ایندکس های بی استفاده را حذف نمود. در این متن سه روش مختلف برای شناسایی ایندکس های بی استفاده را توضیح می دهیم.
روشی برای شناسایی ایندکس های تکراری
همانطور که در مطلب ایندکس های ترکیبی اشاره شد می توان در کنار ایندکس های عادی، ایندکس های ترکیبی که ترتیب ستون های آنها از اهمیت زیادی برخوردار است ایجاد کرد تا QUERYهای مختلف بتوانند با سرعت بالاتر اجرا شوند.
از طرفی دیگر استفاده از ایندکس های زیاد سبب ایجاد سربار در عملیات DML می شود و فضای دیتابیس را هدر می رود. در این متن یک QUERY برای یافتن ایندکس هایی که ستون های تکراری دارند معرفی می شود.
ایندکس های ترکیبی
ایندکس ترکیبی یا COMPOSITE INDEX برای دو یا چند ستون از جدول تعریف می شود ولی به هر ترتیبی که ستون ها در عبارت ساخت ایندکس قرار گیرند فقط یکسری از QUERYها می توانند از آن ایندکس استفاده کنند. در این متن روش استفاده مناسب از ایندکس های ترکیبی و نحوه عملکرد آنها را توضیح می دهیم.
ایندکس های B-TREE عادی و UNIQUE
ایندکس B-TREE پرکاربردترین ایندکس در دیتابیس اوراکل است که در حالت پیش فرض به صورت غیر UNIQUE ساخته می شود. ایندکس های B-TREE را می توان به صورت UNIQUE نیز تعریف نمود که هیچ تفاوتی از لحاظ PERFORMANCE و ساختار داده ها با ایندکس عادی ندارند. در این متن ساختمان داده و روش عملکرد ایندکس های عادی B-TREEE و UNIQUE را توضیح می دهیم.
آموزش SQL و PL/SQL برای دیتابیس اوراکل(دانلود فایل PDF)
دانلود آموزش SQL شامل مطالب Oracle Database 12c R2: SQL Workshop I و Oracle Database 12c R2: SQL Workshop II(نویسنده مطلب: مهندس میلاد خالقی)
دانلود آموزش برنامه نویسی PL/SQL برای دیتابیس اوراکل(نویسنده مطلب: مهندس میلاد خالقی)
ایندکس BITMAP در اوراکل
در دیتابیس اوراکل انواع مختلفی از ایندکسها وجود دارند که از آنها به منظور بهبود کارایی دیتابیس استفاده می شود ولی هر کدام دارای کاربرد و ساختار متفاوت هستند. در این متن ایندکس های از نوع BITMAP که فقط در نسخه های ENTERPRISE اوراکل قابل تعریف و استفاده هستند را توضیح می دهیم.
محدود کردن رکوردها با کمک ROWNUM ، ROW_NUMBER و FETCH
برای نمایش تعداد محدودی رکورد از خروجی یک پرس و جو، می توان از توابعی چون ROW_NUMBER، rank و همچنین Pseudo columnای بنام rownum استفاده کرد. البته در اوراکل نسخه 12c هم بهبودهای در این زمینه ایجاد شد و در این نسخه با استفاده از عبارت FETCH هم می توان به این هدف رسید. در ادامه متن با هر سه این روشها آشنا خواهیم شد.
شناسایی و KILL کردن SESSION های LOCK کننده در دیتابیس اوراکل
گاهی اوقات برخی OBJECTها یا رکوردهای جداول، به منظور عملیات DML در اختیار یک SESSION خاص قرار گرفته و LOCK شده اند بنابراین کاربران دیگر نمی توانند بر روی آنها از دستورات DML استفاده کنند. در این مواقع می بایست این دسته از SESSIONها را شناسایی کرد و عمل KILL کردن آنها را انجام داد تا پس از ROLLBACK اتوماتیک عملیات، OBJECTها یا رکوردهای مورد نیاز آزاد گردند.
در ادامه دو روش مختلف برای انجام عملیات شناسایی و KILL کردن SESSIONهای LOCK کننده معرفی می کنیم.