Explain Plan Kullanımı ve PLAN_TABLE'ı tekrar oluşturma
Hazırladığımız sorgunun hangi indexleri kullandığı vs. gibi nasıl bir plan ile çalışacağını incelemek için explain plan kullanırız. Aşağıda kod örneğimi paylaşıyorum.
EXPLAIN PLAN FOR select * from emp_table where emp_no=180;
SELECT * FROM TABLE(dbms_xplan.display);
Bu sorgu size aşağıdaki gibi bir sonuç dönecektir.
Sonucu yorumlamak başka bir yazımın konusu olacağı için bu kısmı geçiyorum.
Peki aşağıdaki gibi bir hata alırsak ne yapacağız.
Plan_table'da bir problem var :)
Seçenek 1) SQL> drop table plan_table;
Table dropped.
SQL> @$ORACLE_HOME/rdbms/admin/utlxplan.sql
Table created.
ile plan_table'ı tekrar oluşturmayı deneyebilirsiniz. Tabi gerçekten utlxplan.sql dosyasını bulabilirseniz.
Seçenek 2) Kolları sıvayıp bu işi siz yapabilirsiniz, benim gibi
drop table PLAN_TABLE;
create table PLAN_TABLE (
statement_id varchar2(30),
plan_id number,
timestamp date,
remarks varchar2(4000),
operation varchar2(30),
options varchar2(255),
object_node varchar2(128),
object_owner varchar2(30),
object_name varchar2(30),
object_alias varchar2(65),
object_instance numeric,
object_type varchar2(30),
optimizer varchar2(255),
search_columns number,
id numeric,
parent_id numeric,
depth numeric,
position numeric,
cost numeric,
cardinality numeric,
bytes numeric,
other_tag varchar2(255),
partition_start varchar2(255),
partition_stop varchar2(255),
partition_id numeric,
other long,
distribution varchar2(30),
cpu_cost numeric,
io_cost numeric,
temp_space numeric,
access_predicates varchar2(4000),
filter_predicates varchar2(4000),
projection varchar2(4000),
time numeric,
qblock_name varchar2(30),
Other_Xml Clob
);
Benim kullandığım DB versiyonum aşağıdaki şekilde önceki ve sonraki versiyonlar için farklılık gösterebilir.
Yorumlar
Yorum Gönder