نکاتی در مورد 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 را توضیح خواهیم داد.

(بیشتر…)

اوراکل ZDLRA

ZERO DATA LOSS RECOVERY APPLIANCE یا ZDLRA یک راه حل جامع برای بکاپ و ریکاوری دیتابیس است که توسط شرکت اوراکل ارائه شده است. این راه حل، دیتابیس های اوراکل نسخه 10.2 به بالا که روی هر نوع پلتفرم و سیستم عامل خاص قرار گرفته اند را پشتیبانی می کند. اوراکل ZDLRA از سخت افزار و نرم افزار ویژه تشکیل شده است تا بکاپ و ریکاوری دیتابیس های اوراکل بدون DATA LOSS و با PERFORMANCE بهینه انجام گردد.

(بیشتر…)

فشرده سازی جداول در اوراکل(TABLE COMPRESSION)

در دیتابیس های اوراکل نگارش 9i و بالاتر می توان جدول ها یا پارتیشن ها را فشرده نمود. فشرده بودن یا نبودن جدول ها به طور کامل از دید برنامه نویسان دیتابیس و APPLICATION مخفی است. در ادامه انواع روش های فشرده سازی جدول و ویژگی های آنها را معرفی می کنیم.

در نگارش 9 و 10 اوراکل، فشرده سازی به روش BASIC انجام می گیرد. روش BASIC برای جدول هایی که داده های آنها STATIC هستند مناسب است و در صورت انجام سایر عملیات DML داده های جدول از حالت فشرده خارج خواهد شد.

در نگارش 11 و بالاتر ، روش های دیگر فشرده سازی جدول ارائه شده است که با بکارگیری الگوریتم های خاص امکان استفاده از فشرده سازی برای جدول هایی که عملیات DML روی آنها انجام می شود را فراهم می کند. بنابراین این روش های فشرده سازی مناسب سیستم های OLTP هستند.

(بیشتر…)

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

(بیشتر…)

تاثیر table_cached_blocks در محاسبه Clustering Factor

همانطور که در مطلب “آشنایی با Clustering Factor در اوراکل” بیان شد، برای محاسبه مقدار  Clustering Factor، بررسی می شود که آیا Data Block ارجاع داده شده برای دو  index entry  پشت سرهم، با هم متفاوت هستند یا خیر؟ در صورت یکسان بودن Data Blockها، Clustering Factor  در همان مقدار قبلی اش باقی خواهد ماند و در صورت تفاوت، یک عدد به مقدار Clustering Factor اضافه می شود به عبارتی، با هر سوییچی بین Data Blockها، یک عدد به Clustering Factor افزوده خواهد شد.

با این بیان، در زمان محاسبه clustering factor توسط بسته dbms_stats اگر index entry جدید به data blockای اشاره کند که اخیرا(غیر از data block آخر) مورد دستیابی قرار گرفته باشد و حتی در حافظه هم موجود باشد، باز هم مقدار clustering factor ایندکس افزایش پیدا خواهد کرد.

(بیشتر…)

سه نمونه از محدودیتهای فیچر auto indexing در اوراکل 19c

auto indexing یکی از قابلیتهای مهم اوراکل نسخه 19c است که در مورد این قابلیت، پیشتر مطلبی را نوشتیم(ویژگی Automatic Indexing در اوراکل 19c). در این متن به برخی از محدودیتهای این قابلیت در نسخه 19c خواهیم پرداخت البته بسیار روشن است که در نسخه های آتی اوراکل ممکن است این محدودیتها  برطرف شود بنابرین باید توجه داشته باشید که سناریوهای موجود در متنی که در حال مطالعه آن هستید، در نسخه 19c(بطور دقیق تر 19cR8) تست شده است.

(بیشتر…)

محدود کردن رکوردها با کمک ROWNUM ، ROW_NUMBER و FETCH

برای نمایش تعداد محدودی رکورد از خروجی یک پرس و جو، می توان از توابعی چون ROW_NUMBER، rank و همچنین Pseudo columnای بنام rownum استفاده کرد. البته در اوراکل نسخه 12c هم بهبودهای در این زمینه ایجاد شد و در این نسخه با استفاده از عبارت FETCH هم می توان به این هدف رسید. در ادامه متن با هر سه این روشها آشنا خواهیم شد.

(بیشتر…)

خصیصه CONTAINER_DATA در محیط CDB

به صورت پیش فرض common userها در محیط root container مجاز به مشاهده اطلاعات pdb containerها نیستند و حتی با داشتن مجوز select بر روی ویوهای _V$،  GV$، CDB، نمی توانند اطلاعات containerهای دیگر را ببینید(البته common userهای ORACLE_MAINTAINED=N منظور است):

SQL> create user c##usef identified by a;

User created.

SQL> grant create session to c##usef;

Grant succeeded.

SQL> grant select on v_$session to c##usef;

Grant succeeded.

SQL> conn c##usef/a

Connected.

SQL> show con_name

CON_NAME

——————————

CDB$ROOT

SQL> select distinct con_id from v$session;

    CON_ID

———-

         1

         0

(بیشتر…)