GBase 8s
性能调优
问答
如何查找最长sql并进行调优
发表于2026-03-19 10:40:4653次浏览6个评论
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】:GBase8sV8.8_TL_3.6.3_3X2_1_783c8d_RHEL6_x86_64.tar
【操作系统】:RHEL
【CPU】:x86_64
【问题描述】*:在 GBase 8s 数据库中,如何定位执行耗时最长的 SQL 语句?并结合执行计划、索引结构、锁等待与事务机制,进行针对性 SQL 性能调优?
悬赏:2000吉币
回答被发帖人采纳后可获得赏金
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526
1、打开sqltracing
EXECUTE FUNCTION task(’ SET SQL TRACING ON');
--关闭sqltracing
EXECUTE FUNCTION task(’ SET SQL TRACING OFF');
2、对指定数据库进行跟踪
EXECUTE FUNCTION task(’ SET SQL TRACING DATABASE ADD');
3、找到“实际运行时间”最长的SQL语句,并进行调优
打开SQL tracing,过一段时间后执行如下SQL语句
select first 20 sql_id from sysmaster:syssqltrace
where sql_runtime > 0
order by sql_runtime desc;
使用上面的SQL语句得到一些sql_id后,再通过下面的SQL语句得到这些sql_id对应的SQL语句的信息(将下面SQL语句中的my_sql_id替换成这些sql_id)
SELECT sql_sid, sql_uid,
dbinfo('UTC_TO_DATETIME',sql_finishtime) as finishtime,
TRUNC(sql_runtime,7) || ' Sec' AS sql_runtime,
sql_actualrows, sql_statement, sql_database
FROM sysmaster:syssqltrace WHERE sql_id = my_sql_id