Invalid Objects, Database Performance

MANAGING DATABASE PERFORMANCE :
Pada saat ini kita akan membahas mengenai Database Performance Tingkat Dasar

Hal2 Yang Akan Dibahas Antara Lain Mengenai :
1. Troubleshoot Invalid and Unusable Objects
2. Gather Optimizer Statistics
3. View Performance Metrics, dan
4. React To Performance Issues

ISSUES :
1. Memory Allocation Issue
2. Network Bottleneck
3. Application Code Problems
4. I/O Device Contention
5. Resource Contention

Performance Monitoring, terbagi atas dua tipe :
1. Reactive Monitoring :
Response yang kita sebagai DBA lakukan terhadap issue2 yang dilaporkan oleh user,
misalnya : response time, instance failures, errors found in alert log
2. Proactive Monitoring :
Mengidentifikasi hal2 yang dapat menyebabkan masalah, sebelum secara luas menimbulkan dampak terhadap performa database

Pada Saat Ini Kita Hanya Akan Membahas Mengenai REACTIVE MONITORING
Penurunan Performa Dapat Terjadi Dikarenakan :
1. Object2 INVALID
objek : INDEX, PROCEDURES, TRIGGERS, PACKAGES, OBJECT TYPES

Penyebab object menjadi INVALID :
1. procedures mengacu ke kolom pada suatu tabel, dan pada suatu waktu kolom tersebut di drop, maka Procedures tersebut perlu di compile
2. Procedures memiliki syntax yang salah

Biasanya Oracle akan secara otomatis mengcompile ulang PL/SQL yang invalid, apabila tidak berhasil maka DBA perlu untuk mengcompile procedures secara manual

Mengidentifikasi object yang INVALID, query dba_objects atau all_objects atau user_objects view
SQL> select owner, object_name, object_type from dba_objects
where status =’INVALID’;

untuk memperbaiki invalid procedures, gunakan perintah SQL>alter procedures owner.procedures_name COMPILE
untuk memperbaiki invalid views, gunakan perintah SQL>alter view owner.view_name COMPILE

jika terjadi ERROR, check dependencies object tersebut dari dba_dependencies, user_dependencies, all_dependencies
jika terdapat banyak object yang harus di compile gunakan fitur yang disediakan oleh oracle,, yaitu
conditions : letak oracle database software berada di drive D:
actions :
SQL> @D:\oracle\product\10.2.0\db_1\rdbms\admin\ultrp

SIMULASI :
1. connect as system
2. SQL> create user abip_invalid identified by abip_invalid
Notes : untuk belajar, dianjurkan untuk memberi password yang sama dengan user name agar tidak lupa
3. SQL> grant dba to abip_invalid
4. connect as abip_invalid
5. SQL> create table tab_invalid(num number, dt date);
6. SQL> insert into tab_invalid values(1,sysdate);
7. buat view untuk tab_invalid
SQL> create or replace view view_invalid as select dt from tab_invalid;
8. buat procedures untuk tab_invalid
SQL> create or replace procedure proc_invalid as
count_number number;
begin
select count(*) into count_number from tab_invalid;
end;
/
9. SQL> select object_name, object_type, status from user_objects;

OBJECT_NAME OBJECT_TYPE STATUS
————–|————–|———-
TAB_INVALID TABLE VALID

VIEW_INVALID VIEW VALID

PROC_INVALID PROCEDURE VALID

10. Lakukan simulasi pengInvalidan Object
SQL> alter table tab_invalid drop column dt;
11. Lakukan Langkah ke 9, dengan hasil yang jelas berbeda
OBJECT_NAME OBJECT_TYPE STATUS
————–|————–|———-
TAB_INVALID TABLE VALID

VIEW_INVALID VIEW INVALID

PROC_INVALID PROCEDURE INVALID

12. Untuk procedures lakukan Compile
SQL> alter procedure proc_invalid COMPILE;
procedures PROC_INVALID telah VALID !
OBJECT_NAME OBJECT_TYPE STATUS
————–|————–|———-
TAB_INVALID TABLE VALID

VIEW_INVALID VIEW INVALID

PROC_INVALID PROCEDURE VALID

13. Compile View
SQL> compile view view_invalid compile;
ups, whadda hell !!!
Warning: View altered with compilation errors.
Recompile view akan gagal, karena View Mengacu pada kolom yang telah di drop

Check Apa Yang Terdapat Pada View view_invalid pada user_views atau dba_views, all_views
SQL> select view_name, text from user_views where view_name like ‘VIEW%’;
VIEW_NAME TEXT
————-|——————————-
VIEW_INVALID select dt from tabel_invalid
untuk mengetahui secara pasti, query user_dependencies;

SQL> select referenced_name from user_dependencies where lower(name) like ‘view%’;
REFERENCED_NAME REFERENCED_TYPE
—————–|—————–
TAB_INVALID TABLE
DT NON-EXISTENT
DT NON-EXISTENT
Kita mendapati bahwa kolom dt sudah tidak exist
14. Putuskan, untuk drop view atau buat kolom dengan kolom yang sama
SQL> alter table tab_invalid add (d1 date);
15. Compile ulang,
SQL> alter view view_invalid compile;
view akan menjadi valid, dan procedures menjadi tidak valid, compile ulang procedure proc_invalid

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.