استفاده از Bind Variables در اوراکل

در این بخش از آموزش اوراکل، بخش SQL Tuning قصد داریم آموزش استفاده از Bind Variables در اوراکل را یاد بگیریم.

نرم افزار دیتابیس اوراکل دستورات SQL را ذخیره caches می کند. و دستورات SQL ذخیره شده cached اگر مجدد همان دستور خواسته شده با دستور ذخیره شده یکسان باشد مجدد در دیتابیس مورد استفاده قرار می گیرد.

دستور و کوئری SQL مجدد اجرا شود زمان اجرای آن کاهش می یابد اما فقط دستورات sql ذخیره cached می شوند و مورد استفاده مجدد قرار می گیرد که دستور sql کاملا یکسان باشد و یکسان بودن دستور sql به این معنی که :

  • تمامی کراکترها characters دستور و کوئری SQL باید یکسان باشد.
  • تمامی حروف letters دستور و کوئری SQL باید یکسان باشد.
  • تمامی فاصله ها spaces دستور و کوئری SQL باید یکسان باشد.

شما برای اینکه بخواهید یک دستور و کوئری sql را برای چندین مقدار متفاوت اجرا کنید بهتر است از Bind Variables استفاده کنید به جای اینکه بخواهید مقدارهای متفاونی را در کوئری اجرا کنید.

دستورات sql و کوئری های غیریکسان

در این بخش از آموزش اوراکل، شما با دستورات و کوئری sql های غیر یکسان آشنا خواهید شد.

هر سه مثال زیر کوئری های غیریکسان می باشد و این دستوررات CACHE و ذخیره نمی شوند و در هر بار اجرا از دیسک خوانده و اجرا می شود.

sqltuning
دو کوئری غیریکسان از نظر دو مقدار متفاوت
آموزش اوراکل
دو کوئری غیریکسان از نظر فاصله space
sqltuning
دو کوئری غیریکسان از نظر نوع حروف letters

یکسان سازی دستورات و کوئری های SQL با استفاده از Bind Variables

در ادامه استفاده از Bind Variables در اوراکل ، شما می توانید با استفاده از Bind Variables دستورات و کوئری های SQL را همسان و یکسان کنید و بصورتی که با دادن مفادیر متفاوت کوئری شما از قسمت Cache خوانده شود و سرعت اجرای آن بالاتر رود.

شما می توانید bind variable را در محیط SQL*Plus و از طریق دستور VARIABLE تعریف کنید.

آموزش اوراکل

شما می توانید به متغیرهای bind variable را از طریق دستور زیر مقداردهی کنید. در محیط SQL و PL/SQL از طریق : و سپس نام متغیر مقداردهی کنید .

در کل متغیرهایی که بصورت ساختار زیر می باشد متغیرهای bind variable می نامند.

آموزش اوراکل

و ا طریق ساختار و دستورات زیر از متغیر bind variable در کوئری های SQL استفاده کرده و خروجی های متفاوتی را مشاهده میکنید و تمامی کوئری ها یکسان بود و در اجرای دوم به بعد در cache ذخیره شده و سرعت اجرای کوئری ها بالاتر می رود و لذا به هدف بهینه سازی کوئری ها استفاده از bind variable مناسب می باشد.

sqltuning

نکته : بصورت کلی زمانی از bind variable استفاده کنید که قرار است یک کوئری یکسانی را چندین بار اجرا کنیدو برای شما سرعت اجرای کوئری اهمیت دارد.

آموزش اوراکل

لیست کردن و نمایش متغیرهای Bind Variables

شما در محیط SQL*Plus می توانید متغیرهای bind variables را با استفاده از دستور VARIABLE لیست کنید.

sqltuning

و برای نمایش مقادیر متغیرهای bind variable در محیط SQL*Plus از دستور PRINT استفاده کنید.

آموزش اوراکل

استفاده از متغیر Bind Variable به منظور ذخیره مقادیری که خروجی از table function در pl/sql

در ادامه استفاده از Bind Variables در اوراکل ، با توجه به مثال زیرشما می توانید با استفاده از متغیرهای Bind Variable مقادیر خروجی توابع در pl/sql را در این متغیرها مقداردهی کرده و نمایش دهید.

sql-tuning

استفاده از متغیر Bind Variable به منظور ذخیره رکوردهای خروجی از REFCURSOR

باتوجه به مثال زیر شما می توانید با استفاده از Bind Variable رکوردهای خروجی از REFCURSOR ها را در این متغیرها ذخیره و نمایش دهید.

آموزش اوراکل

اطلاعات بیشتر در مورد SQL Tuning

دیدگاه خود را بنویسید:

آدرس ایمیل شما نمایش داده نخواهد شد.

*

code

فوتر سایت