بررسی هینت ORDERED و LEADING

زمانی که یک دستور با چندین شرط join اجرا می شود، عمل join در هر لحظه تنها بین دو جدول آن دستور انجام خواهد شد به عبارت دیگر، عمل join یک عمل باینری می باشد و ترتیب انجام آن، می تواند به لحاظ پرفورمنسی، کارساز باشد.

برای تعیین ترتیب join بین جداول، باید حالات مختلفی توسط اوراکل بررسی شود که این کار می تواند وقت زیادی را از سیستم بگیرد برای جلوگیری از این اتلاف وقت، می توان ترتیب پیوند را با استفاده از هینت ORDERED تعیین کرد.

در قسمت زیر خواهیم دید که با کمک این هینت دریک دستور، ترتیب پیوندها بر اساس ترتیب جداول در عبارت from تعیین خواهند شد.

(بیشتر…)

cursor shring و bind variable

وقتی که اوراکل دستوری را اجرا می کند، سعی دارد تا فرم قابل اجرای دستور اجرا شده(که plan آن مشخص شده) را در library cache نگهدارد تا در صورت امکان، از آن استفاده مجدد کند حال اگر این فرم پارس شده برای دستور دیگری مورد استفاده قرار بگیرد می گویند یک soft parse انجام شده است و در صورتی که اوراکل مجبور شود یک فرم جدید قابل اجرا(که در library cache موجود نیست) برای دستور وارده بسازد، hard parse صورت گرفته است.

(بیشتر…)

enq: TM – contention

Enqueue ها کنترل دسترسی همزمان به یک شی واحد توسط چند نفر را بر عهده دارند تا به شی مورد نظر آسیبی وارد نشود و یکپارچگی آن حفظ شود پس از این نظر یک قابلیت مفید برای پیشبرد کار ما هستند ولی باید ساختار بانک اطلاعاتی طوری باشد که رقابت دو فرد برای دسترسی به یک شی به حداقل ممکن برسد تا wait هم کمتر رخ دهد. نمونه ای از waitای که بواسطه مدیریت Enqueue ایجاد می شود، enq: TM – contention می باشد که در اینجا سعی داریم تا علل رخ دادن آن و نحوه جلوگیری از آنرا به طور مختصر بیان کنیم.

(بیشتر…)

Index scan

Index Unique Scan : معمولا در زمان ایجاد کلید اصلی یا unique key، به طور خودکار یک ایندکس بر روی آنها ساخته می شود که این ایندکس index unique نامیده می شود هر موقع این ایندکس در مسیر دسترسی قرار بگیرد و توسط optimizer انتخاب شود، نوع عملش Index Unique Scan نامیده می شود. در این روش معمولا یک سطر از ایندکس توسط اوراکل خوانده می شود. این روش، سریع ترین روش برای برگرداندن تک رکورد می باشد. پس دو شرط اصلی رجوع optimizer به ایندکس با این روش، به این صورت است:

(بیشتر…)