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

Bu blogdaki popüler yayınlar

DBA SCHEDULER JOB

Drop Edilen Tabloyu Geri Getirme

ORA-20001