فیکس کردن plan بعضی از دستورات بعد از ارتقای دیتابیس

بعد از ارتقای دیتابیس به نسخه ای بالاتر، ممکن است زمان اجرای بعضی از پرس و جوها افزایش پیدا کند. این کندی می تواند به تغییراتی که در رفتار optimizer در هر نسخه از اوراکل ایجاد می شود، برگردد.

در جدول زیر اسامی تعدادی از قابلیتهایی که توسط optimizer در نسخه 11g و 12c قابل استفاده است را مشاهده می کنید:

در این متن به دنبال روشی هستیم که تغییر رفتار optimizer، در دو نسخه مختلف اوراکل را برای یک پرس و جوی مشخص نمایش داده و سپس با کمک قابلیت SQL Plan Management، پلن اجرایی ایجاد شده توسط optimizer، در یکی از این نسخه ها را برای پرس و جوی مورد نظر، فیکس کنیم.

(بیشتر…)

اوراکل 12cR2- مروری بر دو بهبود ساده در دیتاپامپ

اوراکل 12c قابلیتهای را در زمینه Data Pump ارائه کرد که قبلا بعضی از آنها را مورد بررسی قرار داده ایم. در این متن به دو بهبود ساده اوراکل 12cR2 در این زمینه خواهیم پرداخت.

(بیشتر…)

ویژگی Partial Indexing برای جداول پارتیشن شده

در نسخه های اوراکل پیش از 12c، ایجاد ایندکس برای یک جدول پارتیشن بندی شده، سبب ایجاد ایندکس برای همه پارتیشنهای آن جدول می شد. چالش اساسی در این زمینه زمانی مطرح می شود که در مواردی، ایجاد ایندکس، اساسا کاربردی برای پارتیشنهای قدیمی جدول و یا حداقل بعضی از پارتیشنهای آن، ندارد.

(بیشتر…)

تاثیر عملیات NOLOGGING در دیتاگارد(اوراکل 11g و 12c و 18c)

یکی از مراحل پیکربندی دیتاگارد، قراردادن دیتابیس در حالت force logging می باشد این کار سبب خواهد شد تا کاربران امکان اجرای عملیات را به صورت Nologging نداشته باشند و در نتیجه، همه اطلاعاتی که در دیتابیس اصلی درج می شود، به دیتاگارد هم منتقل خواهد شد.

با در نظر داشتن این مسئله، اگر دیتابیس اصلی در حالت force logging قرار نگیرد، تکلیف عملیات Nologging در دیتاگارد چه خواهد شد و برای رفع بلاکهای خراب یا اصطلاحا nonlogged چه عملیاتی را باید در دیتاگارد انجام داد؟

پاسخ به این سوال، در نسخه های مختلف اوراکل، متفاوت خواهد بود که در ادامه، به بررسی این مسئله در نسخه های 11g، 12c و 18c خواهیم پرداخت.

(بیشتر…)

دستور ALTER SEQUENCE RESTART

برای تغییر مقدار جاری یک sequence، روشهای مختلفی وجود دارد که یکی از این روشها، استفاده از دستور ALTER SEQUENCE RESTART می باشد که در اوراکل 12cR2 ارائه شد. در ادامه متن، شیوه استفاده از این دستور را مشاهده خواهید کرد.

(بیشتر…)

پارتیشن بندی انلاین جداول در اوراکل 12cR2

با ارائه نسخه 12cR2 قابلیت جدیدی در زمینه پارتیشن بندی ارائه شد که به لحاظ پیاده سازی، پیچیدگی بسیار کمتری را نسبت به روشهای رایج پارتیشن بندی نظیر بسته dbms_redefintion دارد و صرفا با اجرای یک دستور ALTER TABLE .. MODIFY، پارتیشن بندی را برای جداول امکان پذیر خواهد کرد.

(بیشتر…)

پروسیجر EXPAND_SQL_TEXT

یک ویو ممکن است از یک پرس و جوی بسیار پیچیده و با متن طولانی ایجاد شده باشد و حتی بعضا، در متن پرس و جو، به ویوهای پیچیده دیگری هم رجوع شده باشد با این شرایط، برای ارائه راه حلهای پرفورمنسی  و همچنین انجام تغییری در متن کد، داشتن متن کامل پرس و جو(بدون ارجاع به هیچ ویوی دیگر)، می تواند در مواردی راهگشا باشد.

(بیشتر…)

تهیه دامپ از جداول auditing در اوراکل 12c

در اوراکل 11g، امکان گرفتن دامپ از جدول $aud با کمک data pump وجود ندارد:

[oracle@myhost ~]$ expdp directory=mrm dumpfile=aud.dmp tables=aud$

Export: Release 11.2.0.4.0 – Production on Sat Dec 8 17:30:47 2018

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting “SYS”.”SYS_EXPORT_TABLE_01″:  sys/******** AS SYSDBA directory=mrm dumpfile=aud.dmp tables=aud$

Estimate in progress using BLOCKS method…

Total estimation using BLOCKS method: 0 KB

ORA-39166: Object SYS.AUD$ was not found.

ORA-31655: no data or metadata objects selected for job

Job “SYS”.”SYS_EXPORT_TABLE_01″ completed with 2 error(s) at Sat Dec 8 17:30:59 2018 elapsed 0 00:00:04

(بیشتر…)

انجام duplicate با کمک Data Guard

اجرای دستور duplicate برای ایجاد بانک جدید(دیتابیس تستی و یا دیتاگارد چندم) بر روی بانک اصلی ممکن است سبب ایجاد کندی در آن شود، در صورتی که از قبل دیتاگاردی در این محیط پیکربندی شده باشد، می توان با کمک ان، از بار ناشی از ایجاد دیتابیس جدید در بانک اصلی جلوگیری کرد.

(بیشتر…)

ایجاد synonym برای کاربران

ایجاد synonym برای کاربران در اوراکل 12c امکان پذیر است. این کار با کمک پارامتر مخفی enable_schema_synonyms_ قابل انجام می باشد:

SQL> alter system set “_enable_schema_synonyms” = true scope=spfile;

System altered.

برای مثال، بعد از تنظیم این پارامتر، می توانیم با کمک دستور زیر، برای کاربر usef، نام دیگری هم تعیین می کنیم:

SQL>  create schema synonym new_name for usef;

Schema synonym created.

(بیشتر…)