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

Drop Edilen Tabloyu Geri Getirme

DBA SCHEDULER JOB

Windows 10 Oracle Forms Çalıştırma