oracle查看sql执行计划

1、相应语句复制到生产plsql,直接查看执行计划; 可以与实际项目运行不一致

2、查看实际项目运行的执行计划
select * from v$sqltext t where t.sql_text like ‘%AND SHARE_MERGE_ID =%’; --根据sql查找

select sql_id, count(1) from v$active_session_history group by sql_id order by count(1) desc --根据执行频率筛选

select * from v$sqltext t where t.sql_id = ‘0svcxwmsp5x6g’; --确定相应sql

select * from v$active_session_history t where t.sql_id=‘0svcxwmsp5x6g’ order by sample_time ; --查看具体执行情况, 可以distinct(t.sql_plan_hash_value)看看不同执行计划
select * from dba_hist_sqlstat where sql_id=‘0svcxwmsp5x6g’; --2503469461 4079721670

select * from V$SQL_PLAN where plan_hash_value=2503469461; --查看执行计划

实际执行计划可能与预想的不一样:
单表存在两个索引:
1、unique多字段索引:A、B、C
2、normal单字段索引:C
当单表查询,where条件为A+B+C字段时,却走了C字段normal索引。
oracle如何选择索引的,如何才能走unique索引? 且程序突然变慢,之前走了复合索引?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值