ویژگی Memoptimized Rowstore – Fast Ingest در اوراکل 19c

همانطور که می دانید، IOT Deviceها به طور پیوسته جریانی از داده را به سمت دیتابیس هدایت می کنند به طوری که درج این داده ها در دیتابیس رابطه ای می تواند با چالشهای پرفورمنسی همراه باشد.

در اوراکل نسخه 19c ، راهکاری برای حل این مسئله پرفورمنسی ارائه شد که مطابق با آن، این دسته از دیتا ابتدأَ در حافظه ثبت شده و در نهایت به صورت دسته ای به دیسک منتقل می شوند. این قابلیت جدید، Memoptimized Rowstore Fast Ingest نام دارد.

البته به این ویژگی اصطلاحا deferred insert هم گفته می شود چرا که ابتدا دیتا در قسمتی از large pool ثبت می شود و بعد از گذشت مدت زمانی، به صورت خودکار توسط اوراکل به دیسک منتقل شده و در زمانی که دیتا در Large Pool قرار دارد، توسط sessionهای دیگر قابل رویت نخواهد بود.

(بیشتر…)

نگاهی به اثر منفی پرفورمنسی Out Of Place Refresh

بروزرسانی Materialized View(MV) به روش Out of Place ، قابلیت جدیدی بود که در اوراکل نسخه 12c ارائه شد، در این روش، در زمان بروزرسانی MV، به جای دستکاری جدول جاری MV، اوراکل جدول جدیدی را ایجاد می کند و حاصل اجرای متن MV را در این جدول درج خواهد کرد بعد از آنکه اطلاعات بروز شده به صورت کامل در جدول جدید درج شد، این جدول با جدول جاری MV جایگزین می شود.

با توجه به آنکه در مورد ویژگی Out Of Place Refresh قبلا مطلبی را ارائه کردیم از تکرار مجدد آن پرهیز کرده و در این مطلب به بررسی یکی مضرات پرفورمنسی این شیوه از بروزرسانی خواهیم پرداخت.

Out Of Place Refresh در کنار مزایایی که دارد ممکن در شرایطی برای دیتابیس سربار پرفورمنسی ایجاد کند. چرا که در این روش از بروزرسانی، با هر بار بروزرسانی MV، جدولی حذف و جدول جدیدی ایجاد خواهد شد و جدول جدید مشخصات مختص به خود را دارد(نظیر object_id و …) و برای دیتابیس یک object جدید محسوب می شود.

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

(بیشتر…)

ارتقا Minor Version لینوکس در محیط کلاستر

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

در جدول زیر می بینید که ACFS و AFD اوراکل 19c، در کدام یک از نسخه های کرنلOracle Linux(X86_64) پشتیبانی می شوند:

در صورت عدم پشتیبانی grid نسخه جدید در سیستم عامل نسخه جاری، در زمان ارتقا، با چنین خطایی مواجه خواهیم شد:

Verifying ACFS Driver Checks …FAILED

PRVG-6096 : Oracle ACFS driver is not supported on the current operating system

(بیشتر…)

undo_retention یا auto tuned_undoretention؟

همانطور که می دانید از طریق پارامتر undo_retention می توان تعیین کرد که undoها برای چه مدت زمانی در وضعیت unExpire قرار داشته باشند و با فرض عدم کمبود فضا برای undo tablespace، وضعیت undo dataهای unExpire بعد از چه مدت زمانی به Expire تغییر کند.

برخلاف انتظار، بسیاری از مواقع در محیطهای عملیاتی شاهد آن هستم که undo dataها بعد از مدت زمان تعیین شده برای undo_retention هم موجود و قابل استفاده هستند که در سناریوی زیر این مسئله را مشاهده می کنید.

(بیشتر…)

در چه شرایطی برای یک ستون هیستوگرام تهیه می شود؟

قبلا در مطلبی توضیح دادیم که اوراکل وضعیت بروز و یا stale بودن آمارهای جدول را بر اساس اطلاعات موجود در جدول $sys.mon_mods_all تعیین می کند(ویوی dba_tab_modifications شکل خواناتری را از این اطلاعات نمایش می دهد.) و بر اساس آن تصمیم می گیرد که آمار چه جداولی را باید بروزرسانی کند.

در این متن قصد داریم بررسی کنیم که اوراکل در زمان جمع آوری آمار، بر چه مبنایی به این نتیجه می رسد تا برای ستونی Histogram تهیه کند؟

(بیشتر…)

نکاتی در مورد LOCAL TEMPORARY TABLESPACE(اوراکل 12cR2)

همانطور که می دانید، در محیط RACء، Temporary Tablespaceها در سطح دیتابیس ایجاد شده و tempfileها هم باید در فضای shared بین همه instanceها به اشتراک گذاشته شوند.

از اوراکل 12cR2 نوع دیگری از Temporary Tablespace تحت عنوان local temporary tablespace اضافه شده که tempfileهای این نوع از temp TBSها را می توان در فضای local مربوط به instance ایجاد نمود.

در ادامه متن به نحوه ایجاد و مدیریت این نوع از temp tbsها و همچنین نحوه اولویت دهی اوراکل بین Shared Temporary Tablespace و Local temporary tablespace خواهیم پرداخت.

(بیشتر…)

ایجاد Gold Image از GI HOME و Oracle HOME

شرایطی را در نظر بگیرید که قرار است نرم افزار نصب شده ای که patchهای متنوعی هم بر روی آن اعمال شده را برای چندین مرتبه در یک محیط نصب کنیم! نصب نرم فزار و سپس اعمال همه patchها بر روی آن، می تواند زمان نصب را طولانی تر و همچنین عملیات نصب را پیچیده تر کند. راهکاری که اوراکل در این زمینه ارائه داده است، تهیه Gold Image از نرم افزار نصب شده موجود(به همراه patchهای اعمال شده) می باشد.

ایجاد Gold Image از نرم افزارهای نصب شده، می تواند سرعت نصب مجدد نرم افزار را افزایش داده و به سادگی در نصب هم کمک کند. در این متن، نحوه ایجاد Gold Image از GI HOME و Oracle HOME را توضیح خواهیم داد.

(بیشتر…)

auto_only Large Page در اوراکل 19c

در مطلب پیکربندی Huge Page برای دیتابیس اوراکل در مورد مقادیری که برای پارامتر USE_LARGE_PAGES قابل تنظیم است، نکاتی را مطرح کردیم و توضیح دادیم که برای این پارامتر می توان یکی از مقادیر FALSE, ONLY, TRUE را تنظیم کرد(مقدار AUTO در نسخه های جدید قابل تنظیم نیست.)

Connected to Oracle Database 18c Enterprise Edition Release 18.0.0.0.0

SQL> select value from v$parameter_valid_values p where upper(name)= ‘USE_LARGE_PAGES’;

VALUE

————–

TRUE

AUTO

ONLY

FALSE

در اوراکل نسخه 19c، مقدار AUTO_ONLY هم به این مجموعه مقادیر اضافه شده است که در این متن به بررسی این مقدار خواهیم پرداخت.

Connected to Oracle Database 19c Enterprise Edition Release 19.0.0.0.0

SQL> select value from v$parameter_valid_values p where upper(name)= ‘USE_LARGE_PAGES’;

VALUE

————–

TRUE

AUTO

ONLY

FALSE

AUTO_ONLY

(بیشتر…)

Fix کردن پلن کوئری های فاقد bind variable

برای دستور زیر، دو plan در دیتابیس موجود است:

SQL> select * from mytbl where object_id=9;

SQL> @plan_hash_value

قصد داریم با ایجاد sql profile، پلن شماره 1787877304 را برای پرس و جو 9tfrqw5x3qw8s، فیکس کنیم:

SQL> @coe_xfr_sql_profile.sql    9tfrqw5x3qw8s    1787877304

(بیشتر…)

حذف ایندکسهای ایجاد شده با فیچر Auto Indexing

ایندکسهای از نوع auto index را نمی توان با دستور drop index حذف کرد:

SQL> select index_name,auto from dba_indexes where AUTO=’YES’;

INDEX_NAME                   AUTO

———————-               ——–

SYS_AI_9qxxvpz1p5359    YES

SQL> drop index “SYS_AI_9qxxvpz1p5359”;

ORA-65532: cannot alter or drop automatically created indexes

(بیشتر…)