بانک اطلاعاتی اوراکل

وحید یوسف زاده

بانک اطلاعاتی اوراکل

وحید یوسف زاده

نقش cursor در پارس دستورات sql

| جمعه, ۹ مرداد ۱۳۹۴، ۱۰:۳۴ ق.ظ

در این قسمت نقش cursorها را در عمل پارس یک دستور sql، در سه مرحله توضیح خواهیم داد:


اول) در ابتدای کار، با استفاده از اطلاعات pga مشخصاتclose cursorها بررسی می شود تا اگر از بین انها موردی یافت شد که نیاز این دستور را برای دسترسی به فرم پارس شده اش برآورده می کند، انتخاب کند تا دیگر نیازی به مرحله soft parse نداشته باشد. حداکثر تعداد close cursorهابه ازای هر session با استفاده از پارامتر  SESSION_CACHED_CURSORS مشخص می شود.

دوم) اگر در مرحله اول، از بین close cursorها مورد مناسبی یافت نشود، برای این دستور، یک open cursor ایجاد می شود تا کار soft parse را در صورت امکان انجام دهد.


سوم) اگر در درون library cache شکل پارس شده sql مورد نظر یافت نشد، باید عمل hard parse را انجام شود و دستور به صورت کامل پارس شود.


نتیجه اینکه:

 در مرحله دوم(soft parse)ممکن است بین open cursorها بر سر دسترسی به منابع، رقابتی به وجود بیاید که این رقابت باعث ایجاد latche شود ولی اگر از close cursorها بهره گیریم، دیگر نیازی به انجامsoft parse نخواهیم داشت(البته برای هر دستور حداقل یک hard parse و نیز حداقل یک soft parse به ازای هر session داریم). 

ضمنا برای بررسی و جستجوی close cursorهای موجود در pga معمولا رقابت سنگینی صورت نمی گیرد و با سرعت بسیار بالایی می توانیم تشخیص دهیم که کدام  یک از close cursorها به کمک ما می آیند.


  • ۹۴/۰۵/۰۹

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">