登录 | 注册
首页
方案案例
技术社区
资源中心
培训体系
服务合作
关于我们
SUNDB数据库语句优化的几点思路(上)
SQL优化流程
DB性能侠
专栏:数据库性能调优坊 2024-07-26 15 2
分享到:

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


image.png



二、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;


image.png







2
评论

登录后发表回复

暂无评论
专栏作者
DB性能侠

实战技巧,解锁数据库性能瓶颈

  • 文章

    4
  • 阅读量

    65
  • 获赞

    4
实战技巧,解锁数据库性能瓶颈

SUNDB

常见问题集锦

SUNDB

免费试用

回复