Oracle DBA学习篇之SQL_TRACE

SQL_TRACE



set linesize 10000;

set pagesize 20000;

set serveroutput on;

alter session set sql_trace=true;

select count(*) from firefox;

alter session set sql_trace=false;



--查看sql_trace trace file

select * from v$diag_info where name like 'Default%';

select sid,serial# from v$session ;





variable x number;

exec :x:=1;

alter session set events '10046 trace name context forever,level 12';

select count(*) from firefox where object_id=:x;

alter session set events '10046 trace name context off';

select object_name from dba_objects where object_id=426 or object_id=427



SQL> select * from aux_stats$;

收集系统信息

exec dbms_stats.gather_system_stats(gathering_mode=>'start');

alter system flush_cache;

select count(*) from fire_t01;

select * from aux_stats$;





初始化参数;

db_file_multiblock_read_count

查看数据表一共有多少个块;

select blocks from user_tables where table_name='FIREFOX';



set autotrace on;

SELECT * FROM FIREFOX;



SELECT /*+ blocks/k=cost */ 1029/10.4 from dual;



查看数据块大小

show parameter db_block_size;





select * from sys.aux_stats$;

SYSSTATS_MAIN    IOSEEKTIM    10

SYSSTATS_MAIN    IOTFRSPEED    4096

SYSSTATS_MAIN    CPUSPEEDNW    2657.0122



#单块读的时间

sreadtim = IOSEEKTIM+(size of one block/IOTFRSPEED).

=10+(8192/4096)=12

#多块数据块读取的时间

mreadtim=IOSEEKTIM+(MBRC * SIZE OF one block) / IOTFRSPEED)

=10+((16*8192)/4096)=42

io_cost=(1046(blocks)/16)*(42/12)=232.75

cpu_cost=cpu_cost=cpucycles/(cpuspeed*sreadtim)

=116192792/(2657.0122*12*1000)=4.48

cost=io_cost+cpu_cost = 232.75 + 4.48 = 

如何查看cpucycles:PLAN_TABLE、PLAN_TABLE$;



 



 



create table firefox1 as select * from firefox where rownum<100;

create index idx_firefox on firefox(object_id);

create index idx_firefox1 on firefox1(object_id);



begin

dbms_stats.gather_table_stats(

user,

'firefox',

cascade => true,

estimate_percent => null,

method_opt =>'for all columns size 1'

);

end;

/



begin

dbms_stats.gather_table_stats(

user,

'firefox1',

cascade => true,

estimate_percent => null, --完全精确地分析;

method_opt =>'for all columns size 1'

);

end;

/



alter session set events '10053 trace name context forever,level 12';

select * from firefox,firefox1 where firefox.object_id = firefox1.object_id;

alter session set events '10053 trace name context off';

select * from v$diag_info where name like 'Default%';



对SGA区的动态调整;

SQL> show sga;





网络连接 --session &processes;

SQL> select username,paddr from v$session where username is not null;



USERNAME    PADDR

------------------------------ ----------------

SYS    00000000F04DAE60

SYS    00000000F04DAE60

C##SCOTT    00000000F04DBEA0



select addr from v$process where background is null and addr='00000000F04DAE60';

select * from v$process where background is null and addr='00000000F04DAE60';



set autotrace on stat;

select username,paddr from v$session where username is not null;

select addr from v$process where background is null and addr='00000000F04DAE60';



CBO计算成本时索引的权重修正值.

show parameter OPTIMIZER_INDEX_COST_ADJ;

alter session set OPTIMIZER_INDEX_COST_ADJ=10;

优化器--optimizer_mode

first_rows [1|10|100|1000]

first

优化器--optimizer_dynamic_sampling

动态采样的级别0to10

默认值(9i 1, >= 10g 2)





查看当前sql/plus 的SID

SELECT sid, serial# FROM v$session WHERE audsid=SYS_CONTEXT('USERENV','SESSIONID');

select a.name,b.value from v$sesstat b.v$statname a where a.static#=b.statistic# and a.name ='CPU used by this session' and sid=69;



显示各种文件的I/O统计信息

- 数据文件,临时文件,控制文件,日志文件,归档文件...

select file_no,filetype_name,LARGE_READ_MEGABYTES,SMALL_READ_MEGABYTES,SMALL_SYNC_READ_LATENCY from v$iostat_file;

对象--v$segstat

获得某对象的各类统计信息;

select * from v$segstat where obj#=79605 and statistic_name='physical_reads';

 

你可能感兴趣的:(oracle)