怎么登录住房城乡建设部网站,辽宁建设厅官方网站,夸克网站免费进入,上海环球金融中心观光厅本文摘自GBASE南大通用社区#xff0c;by#xff1a;wty#xff0c;原文请点击#xff1a;GBase 8s常见问题 -- 追踪统计SQL执行情况 SQLTRACE|GBASE社区|天津南大通用数据技术股份有限公司|GBASE-致力于成为用户最信赖的数据库产品供应商
问题现象
某些SQL执行慢、有问题…本文摘自GBASE南大通用社区bywty原文请点击GBase 8s常见问题 -- 追踪统计SQL执行情况 SQLTRACE|GBASE社区|天津南大通用数据技术股份有限公司|GBASE-致力于成为用户最信赖的数据库产品供应商
问题现象
某些SQL执行慢、有问题又找不到对应的SQL时可以尝试使用SQLTRACE来查问题SQL或者统计一段时间内的SQL执行情况
解决方法
使用dbaccess连接sysadmin系统库执行task函数
[gbasedbttest15 ~]$ dbaccess sysadmin -Database selected. execute function task(SET SQL TRACING ON, 50000,4k,high,global);(expression) SQL Tracing ON: ntraces50000, size4056, levelHigh, modeGlobal. 1 row(s) retrieved.
“SET SQL TRACING ON” 开启SQLTRACE命令
50000 要跟踪的 SQL 语句的数目。默认 1000。超出后会删除旧的数据。
“4k” 跟踪缓冲区大小的 KB 数。如果超过这个缓冲区大小则数据库服务器丢弃保存的数据。默认 2 KB。
“high” 跟踪级别。缺省为 low。
使用 low 参数来捕获语句统计、语句文本和语句迭代器。
使用 med 参数来捕获包括在低级跟踪的所有信息加上表名、数据库名和存储过程堆栈。
使用 high 参数来捕获包括在中级跟踪的所有信息加上主机变量。
使用 global 参数来启用对所有用户的跟踪。
使用 user 参数来启用跟踪那些由 set sql tracing user 参数启用跟踪的用户。
“global” 跟踪所有用户还是选中的用户。 可以选 global、user 关闭SQLTRACE
[gbasedbttest15 ~]$ dbaccess sysadmin -Database selected. execute function task(SET SQL TRACING OFF);(expression) SQL Tracing OFF. 1 row(s) retrieved. 也可以在命令行使用echo给dbaccess传SQL语句执行
[gbasedbttest ~]$ echo execute function task(SET SQL TRACING ON, 50000,4k,high,global)|dbaccess sysadminDatabase selected.(expression) SQL Tracing ON: ntraces50000, size4056, levelHigh, modeGlobal. 1 row(s) retrieved.Database closed.[gbasedbttest ~]$ echo execute function task(SET SQL TRACING OFF)|dbaccess sysadminDatabase selected.(expression) SQL Tracing OFF. 1 row(s) retrieved.Database closed.查询SQLTRACE统计信息
使用SQL在sysmaster系统库中查syssqltrace表建议适当使用group by / order by配合where条件进行统计
select * from sysmaster:syssqltrace 列类型描述sql_idint8唯一 SQL 执行 IDsql_addressint8代码块中语句的地址sql_sidint运行 SQL 语句的用户的数据库的会话 IDsql_uidint运行 SQL 的语句的用户 IDsql_stmttypeint语句类型sql_stmtnamechar(40)显示为单词的语句类型sql_finishtimeint次语句的完成时间 (UNIX™)sql_begintxtimeint此事务的启动时间sql_runtimefloat语句执行时间sql_pgreadsint此 SQL 语句的磁盘读取数sql_bfreadsint此 SQL 语句的缓冲区读取数sql_rdcachefloat从缓冲池读取页的时间百分比sql_bfidxreadsint索引页缓冲区读取数sql_pgwritesint写入磁盘的页数sql_bfwritesint已修改并返回到缓冲池的页数sql_wrcachefloat页已写入缓冲池但未写入磁盘的时间百分比sql_lockreqint此 SQL 语句所需锁总数sql_lockwaitsintSQL 语句等待锁的次数sql_lockwttimefloatSQL 语句期间系统等待锁定的时间sql_logspaceint逻辑日志中 SQL 语句所用空间量sql_sorttotalint为语句运行的排序数sql_sortdiskint磁盘上运行的排序数sql_sortmemint内存中运行的排序数sql_executionsintSQL 语句运行的次数sql_totaltimefloat运行语句所用的时间总量sql_avgtimefloat运行语句所用的平均时间sql_maxtimefloat执行 SQL 语句所使用最大时间量sql_numiowaitsintI/O 操作必须等待的次数sql_avgiowaitsfloatSQL语句必须等待的平均时间量sql_totaliowaitsfloatSQL 语句必须等待 I/O 的时间总量。这不包含任何异步 I/Osql_rowspersecfloat产生的平均行数每妙sql_estcostint与SQL 语句关联的成本sql_estrowsint按照优化器的预测为 SQL 语句返回的预估计行数sql_actualrowsint为 SQL 语句返回的行数sql_sqlerrorintSQL 错误号sql_isamerrorintRSAM/ISAM 错误编号sql_isollevelintSQL 语句的隔离级别sql_sqlmemoryint执行 SQL 语句所需字节数sql_numiteratorsint语句所用迭代器数sql_databasechar(128)数据库名称sql_numtablesint执行 SQL 语句中所用表数sql_tablelistchar(4096)SQL 语句中直接引用的表名列表。如果 SQL 语句激发对其他表执行语句的触发器将不列出这些表sql_statementchar(1600)已运行的 SQL 语句