oracle10g SQL 跟踪
1.激活SQL跟踪
从oracle10g以后提供了新的方法激活SQL的跟踪,即是使用dbms_monitor包来开启或关闭SQL跟踪。
之前旧方法是使用 alter session set events .. 或者使用dbms_system.set_ev方式
使用dbms_monitor包可以在会话,客户端,组件以及数据库四个层级开启SQL的跟踪。
只有拥有dba角色的用户才能允许执行dbms_monitor包
4个层次级别的激活调用方法:
会 话 级:exec dbms_monitor.session_trace_enable(session_id =>1574,
serial_num=>36749,waits=>true,binds=>false);
注意:使用select * from v$session where sid=sys_context('userenv','sid');
获得session_id和serial
关闭用:
exec dbms_monitor.session_trace_disable(session_id=>1574,serial_num=>36749)
客户端级:exec dbms_monitor.cliend_id_trace_enable(
client_id=''JXXXT:Administrator',
waits =>true,binds=>false)
注意:client_id即v$session表里面的client_identifier字段,默认此字段为空,
通过dba_enabled_traces表查看那些客户端启用了SQL跟踪
&nb
相关文档:
create table tree_table
(
id number,
pId number,
orderNumber number,
name varchar2(255)
)
select tt.*
from tree_table tt
start with tt.pId = 0
connect by prior tt.id = ttd.pId
order siblings by orderNumber ......
标准顺序的 SQL 语句为:
Select 考生姓名, max(总成绩) as max总成绩
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(总成绩) > 600
order by max总成绩
在上面的示例中 SQL 语句的执行顺序如下:
(1). 首先执行 from 子句, 从 tb_G ......
---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略
了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库
环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。笔者在工作实践
中发 ......
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
在使用left jion时,on和where条件的区别如下:
1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已 ......