Vastbase的TopSQL查询语句如下,此处按语句执行总时长(total_time)排序,也可按执行次数(calls)、物理读时间(blk_read_time)、物理写时间(blk_write_time)等属性进行排序。另外必须给执行用户授予vbadmin权限,用户才能查看返回的“query”语句。
select
query,
calls,
total_time,
rows,
shared_blks_read,
shared_blks_dirtied,
shared_blks_written,
temp_blks_read,
temp_blks_written,
blk_read_time ,
blk_write_time
from
pg_stat_statements
where
query not ilike 'SET %'
and query not like '/*contrib/%'
and query not like '-- %'
orderby
total_time desc
limit1;
注意:使用pg_stat_statements视图,需要为数据库配置如下参数;
shared_preload_libraries= 'pg_stat_statements' #创建插件需要加载此模块
track_io_timing =on #如果要跟踪IO消耗的时间,需要打开如上参数
track_activity_query_size =2048 #设置单条SQL的最长长度,超过被截断显示
pg_stat_statements.max = 2000#最多保留多少条统计信息,通过LRU算法,覆盖老的记录
pg_stat_statements.track = all# all - (所有SQL包括函数内嵌套的SQL), top - 直接执行的SQL(函数内的sql不被跟踪), none - (不跟踪)
pg_stat_statements.track_utility= off # 是否跟踪非DML语句 (例如DDL,DCL),on表示跟踪, off表示不跟踪
pg_stat_statements.save= on # 重启后是否保留统计信息