vendredi 28 décembre 2007

Peter Lynn - Train phantom :-)

Juste pour le plaisir des yeux ... trouvé sur le forum de la Kaf :

lundi 24 décembre 2007

Oracle - Explain Plan

select * from v$version;

select rowid,nom,prenom from employe;

rem
rem $Header: utlxplan.sql 08-may-2004.12:53:19 bdagevil Exp $ xplainpl.sql
rem
Rem Copyright (c) 1988, 2004, Oracle. All rights reserved.

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
);


explain plan SET STATEMENT_ID='exemple' for select * from projet where duree=20;
select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));

On s'apperçoit qu'il a un 'access full' sur la table -> on lit la table entièrement -> consomme trop de ressourse.

Pour limiter la conso. de ressourse, on crée un index sur la table, colonne durée :

create index duree_idx on projet(duree);