文章目录
一. 压测交易响应时间逐渐上升
1. 通过应用日志排查耗时,定位原因
2. sql查询耗时
2.1. 检查索引是否失效
2.2. 检查sql查询条件是否导致索引失效
select t.index_name,t.partition_name,t.status from user_ind_partitions t where t.index_name='';
如:查询条件中使用了<>可以改为or来代替
3. 是否由于执行truncate table table_name;
导致分区表索引失效
4. 查询关键列没有索引,在对应的列上创建索引
create index [index_name] on [table_name] ([column_name1],[column_name2]...) logging local tablespace [tablespace_name];
5. 查看sql执行计划
创建执行计划
explain plan set statement_id='t_test' for select * from stu t where t.id='' and t.name='';
查看执行计划
select * from plan_table t where t.statement_id = 't_test';
二. 数据库IO零点突增持续10到20分钟排查
oracle数据库系统数据收集、统计导致,耗时sql查询:
select * from v$sqlarea t where t.FIRST_LOAD_TIME between '2022-07-02/00.00.00' and '2022-07-02/00.10.00' order by t.DISK_READS desc;