In-Memory Advisor در اوراکل 23ai

قابلیت In-Memory Advisor با تحلیل workload دیتابیس تلاش می کند برای In-Memory sizeهای مختلف، DB-Time را تخمین بزند و همچنین می تواند پیشنهاد کند کدام یک از objectها در In-Memory قرار بگیرند.

برای استفاده از این قابلیت، باید از پکیج DBMS_INMEMORY_ADVISE استفاده کرد نحوه اجرای In-Memory Advisor، بسیار مشابه قابلیت Privilege Analysis است و برای گرفتن advise در زمینه In-Memory هم ابتدا باید taskای را start کنیم و زمانی که احساس شد workload دیتابیس به اندازه کافی از دیدگاه In-Memory مورد تحلیل قرار گرفته، این Task را متوقف و نتیجه گزارش را ببینیم.

در ادامه با جزییات بیشتری نحوه ایجاد این گزارش را با هم خواهیم دید.

در قدم اول باید برای استفاده از بسته DBMS_INMEMORY_ADVISE، قابلیت Heat MAP را فعال کنیم:

SQL> exec dbms_inmemory_advise.start_tracking(:task_id);
ORA-20000: Heat map is not enabled.
ORA-06512: at "SYS.PRVT_DBMS_INMEMORY_ADVISOR", line 1578
ORA-06512: at "SYS.PRVT_DBMS_INMEMORY_ADVISOR", line 1667
ORA-06512: at "SYS.DBMS_INMEMORY_ADVISE", line 191
ORA-06512: at line 1
Help: https://docs.oracle.com/error-help/db/ora-20000/
SQL> ALTER SYSTEM SET HEAT_MAP = ON;
System altered.

در قدم بعدی، Taskای را با استفاده از پروسیجر DBMS_INMEMORY_ADVISE.START_TRACKING استارت می کنیم:

PROCEDURE START_TRACKING
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 TASK_ID                        NUMBER                  OUT
SQL> variable task_id NUMBER;
SQL> exec dbms_inmemory_advise.start_tracking(:task_id);
PL/SQL procedure successfully completed.
SQL> print task_id
   TASK_ID
----------
         1

برای تست، workloadای را در دیتابیس شبیه سازی می کنیم:

SQL> declare
a number;
b number;
begin
for i in 1..100000 loop
select sum(LINE) into a from tbl1;
end loop;
end;
/

در مرحله بعدی، Task را متوقف می کنیم:

SQL>  exec dbms_inmemory_advise.stop_tracking;
PL/SQL procedure successfully completed.

در پایان برای ایجاد advise پروسیجر dbms_inmemory_advise.generate_advise اجرا می کنیم:

SQL> exec dbms_inmemory_advise.generate_advise;
PL/SQL procedure successfully completed.

برای مشاهده خروجی می توانیم از ویوی DBA_INMEMORY_ADVISOR_RECOMMENDATION استفاده کنیم:

select task_id,INMEMORY_SIZE,ESTIMATED_DB_TIME_LOW,ESTIMATED_DB_TIME_HIGH,ESTIMATED_DB_TIME_ANALYTICS_LOW,ESTIMATED_DB_TIME_ANALYTICS_HIGH,to_char(RECOMMENDED_OBJ_LIST)  RECOMMENDED_OBJ_LIST from DBA_INMEMORY_ADVISOR_RECOMMENDATION  ;

در خروجی می بینیم که اگر جدول TBL1 به In-Memory منقل شود، به چه اندازه از DB_TIME کاسته خواهد شد و همچنین سایز In-Memory هم پیش بینی می شود:

TASK_ID	1
INMEMORY_SIZE	25231360
ESTIMATED_DB_TIME_LOW	75
ESTIMATED_DB_TIME_HIGH	145
ESTIMATED_DB_TIME_ANALYTICS_LO	69
ESTIMATED_DB_TIME_ANALYTICS_HI	139
RECOMMENDED_OBJ_LIST	Owner: USEF Table: TBL1 ;

 

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:vahidusefzadeh@gmail.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *