Documente Academic
Documente Profesional
Documente Cultură
Ltd
Performans Tuning
EXPLAIN PLAN
Sql>explain plan set statement_id=’ID1’ for select * from u1.emp where
u1.emp.empno=66;
Sql>select operation,options,cost from plan_table where
statement_id=’ID1’;
----------------------------
-----------------------------------------------------------------------------------------
Create one table bolly with 10,000,00 rows without index by SYS user.
Set the sql_trace parameter
Trace the Query
From tkprof utility convert trace file to readable output file.
SYS :
Sql>alter session set tracefile_identifier='outputfilename' ---- mbn
Sql>alter session set sql_trace=true;
Sql>select * from u1.emp where u1.emp.empno=1212;
Sql>alter session set sql_trace=false;
A trace file will be generated in user_dump_dest location .
cd /u01/app/oracle/diag/rdbms/prod/prod/trace/ prod_arcr_4715.trc
tkprof prod_arcr_4715.prf
outputfilename=mbn
Converting trace file into human readable format using tkprof utility
$tkprof u1.emp.trc
--------------------------------------------------------------------------------------------
-------------------------------------
Taking snapshot
Sql>exec dbms_workload_repository.create_snapshot;
Major Steps :
Create Tuning tasks.
Execute Tuning tasks.
Report Tuning Task.
Sql>set serveroutput on
Sql>declare
v_ec varchar2(2500);
begin
v_ec := dbms_sqltune.create_tuning_task(sql_text=>’select * from
u1.emp
FUTUREMATIC PVT LTD
Futurematics.Pvt.Ltd
Performans Tuning
where u1.emp.empno=1232’);
dbms_output.put_line(v_ec);
end;
/
Sql>exec dbms_sqltune.execute_tuning_task(TASK_NAME=>’TASK_12’);
Sql>declare
v_ec varchar2(2500);
begin
v_ec := dbms_sqltune.report_tuning_task(TASK_NAME=’TASK_12’);
dbms_output.put_line(v_ec);
end ;
/
Segment advisory:
BEGIN
for i in 1..100000 LOOP
if mod(i,2)=0 then
INSERT INTO bolly(id,name,gender,salary,pan,address)
VALUES
(i,concat('SALLU',i),'male',i*10,concat('pan',i),concat('ind
ia',i));
else
INSERT INTO bolly(id,name,gender,salary,pan,address)