دیتابیس اوراکل

۲ مطلب در دی ۱۳۹۶ ثبت شده است

برای تبدیل یک dumpfile به دستورات DDL میتوانیم از  sqlfile در import استفاده کنیم.


impdp system@rdb_pdb1 directory=datapump_dir dumpfile=test1.dmp logfile=test1.log remap_schema=test1:testddl sqlfile=test.sql


خروجی آن به شکل زیر است:


خروحی ddl



  • راهله شاکری

از اوراکل 12c به بعد ، CBO میتواند بعضی از انواع scalar subqueryها را به صورت internally به outer joinها تبدیل کند. که این ویژگی با یکی از hidden parameterها بنام optimizer_unnest_scalar_sq_ کنترل میشود که مقدار آن به صورت پیش فرض به true ست شده است . این که این ویژگی جدید باعث بهینه تر شدن کوئری های شما میشود یا اوضاع آنها را بدتر میکند کاملا به شرایط سایت شما و کوئری هایی که اجرا میکنید بستگی دارد.

فقط باید این نکته را درنظر بگیرید که این ویژگی در همه موارد برای scalar subqueryها کار نمیکند. یعنی CBO در بعضی موارد ، حتی با وجود اینکه مقدار این پارامتر به true ست شده است ، scalar subqueryها را به join تبدیل نمیکند.


نکته) با استفاده از کوئری زیر، میتوانید مقدار پیش فرض hidden parameterها را در دیتابیس مشاهده کنید.

 select ksppinm, ksppstvl

  from x$ksppi a, x$ksppsv b

where a.indx=b.indx

    and ksppinm = '_optimizer_unnest_scalar_sq';



به مثال های زیر که در هر دو حالت true و false بودن این پارامتر اجرا شده است توجه نمایید:


مثال 1 :


_optimizer_unnest_scalar_sq_1_

_optimizer_unnest_scalar_sq_2_


Final query after CBO transformations :

_optimizer_unnest_scalar_sq_3_



مثال 2 :

_optimizer_unnest_scalar_sq_4_


_optimizer_unnest_scalar_sq_5_


Final query after CBO transformations :

_optimizer_unnest_scalar_sq_6_


n منابع 

  • راهله شاکری