GBASE 8s 慢SQL

1、慢SQL跟踪

当系统上线时,当系统因为某些SQL运行慢导致页面响应缓慢,可以使用SQLTRACE来查问题SQL,或者统计一段时间内的SQL执行情

2、开启SQLTRACE

dbaccess sysadmin - <<!
execute function task("SET SQL TRACING ON", 100000,"8k","high","global");
!
“SET SQL TRACING ON” : 开启SQLTRACE命令
100000 : 要跟踪的 SQL 语句的数目。默认 1000。超出后会删除旧的数据。
“8k” : 跟踪缓冲区大小的 KB 数。如果超过这个缓冲区大小,则数据库服务器丢弃保存的数据。默认 2 KB。
“high” : 跟踪级别。缺省为 low。
使用 low 参数来捕获语句统计、语句文本和语句迭代器。
使用 med 参数来捕获包括在低级跟踪的所有信息,加上表名、数据库名和存储过程栈。
使用 high 参数来捕获包括在中级跟踪的所有信息,加上主机变量。
使用 global 参数来启用对所有用户的跟踪。
使用 user 参数来启用跟踪那些由 set sql tracing user 参数启用跟踪的用户。
“global” :跟踪所有用户还是选中的用户。 可以选 global、user

3、查询SQLTRACE统计信息

-- INSERT
echo  "select sql_database,sql_statement,sql_totaltime from sysmaster:syssqltrace where sql_database='testdb' and sql_stmtname='INSERT' order by sql_totaltime desc"  > INSERT.sql
dbaccess sysmaster INSERT.sql  > trace_insert.sql 

-- UPDATE
echo  "select sql_database,sql_statement,sql_totaltime from sysmaster:syssqltrace where sql_database='testdb' and sql_stmtname='UPDATE' order by sql_totaltime desc"  > UPDATE.sql
dbaccess sysmaster UPDATE.sql  > trace_update.sql 

-- SELECT
echo  "select sql_database,sql_statement,sql_totaltime from sysmaster:syssqltrace where sql_database='testdb' and sql_stmtname='SELECT' order by sql_totaltime desc"  > SELECT.sql
dbaccess sysmaster SELECT.sql  > trace_SELECT.sql 


-- DELETE
echo  "select sql_database,sql_statement,sql_totaltime from sysmaster:syssqltrace where sql_database='testdb' and sql_stmtname='DELETE' order by sql_totaltime desc"  > DELETE.sql
dbaccess sysmaster DELETE.sql  > trace_DELETE.sql 

3、关闭sqltrace

execute function task("SET SQL TRACING OFF")

syssqltrace表信息
在这里插入图片描述

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值