SQL优化流程6步走(上)
一、数据库中慢的SQL
TRACE_LONG_RUN_SQL参数
用于在测试中抓出执行时间较久的语句,时间用户可控,方便抓取执行缓慢语句。设置这个参数后,数据库将执行时间超出参数所设时间的SQL语句记录在跟踪文件 ($SUNDB_DATA/trc/system.trc)中
参数值说明
➢ 单位:mili-second
➢ 0值:不记录信息
➢ 推荐值:20 (mili-second)以上
例1:记录执行时间超过1秒以上的SQL语句
ALTER SYSTEM SET TRACE_LONG_RUN_SQL = 1000;
例2:恢复为默认值
ALTER SYSTEM SET TRACE_LONG_RUN_SQL TO DEFAULT

二、SQL的执行计划
SUNDB数据库查看执行计划的方式:explain plan + SQL
执行sql语句并与执行结果一起输出执行计划:
explain plan on
不执行sql语句,仅输出执行计划:
explain plan only
未指定on或only时,默认为on:
explain plan
TABLE ACCESS 代表输出信息显示发生的是全表扫描
三、SQL Trace Log中查看详细日志
TRACE_LOG_ID
SQL Trace Log是记录用户查询执行信息的日志。 SQL trace log由用户查询、SQL执行计划、SQL处理的各过程执行时间等多种信息组成。通过设置的TRACE_LOG_ID参数让数据库将用户所需的执行信息输出到SQL Trace Log文件中,便于分析SQL执行情况。SQL trace log按进程ID和会话ID以独立的文件生成在$SUNDB_DATA/trc目录
可以根据需要设置会话级别或全局级别的SQL Trace Log:
例1:如输出成功的SQL语句和失败的SQL语句。
ALTER SESSION SET TRACE_LOG_ID = 110000;
例2:输出成功的SQL语句和bind值。
ALTER SYSTEM SET TRACE_LOG_ID = 100010;
例3:取消SQL Trace Log
alter session set TRACE_LOG_ID=0;

登录后发表回复

实战技巧,解锁数据库性能瓶颈
文章
4阅读量
65获赞
4DB性能侠 2024-07-29
DB性能侠 2024-07-26
DB性能侠 2024-07-26
DB性能侠 2024-07-24

