三月 8, 2024
摘要:报告的该部分包含了,在报告的时间范围内,按几个重要统计数据排列靠前的 SQL。
目录
查询统计数据是从 pg_stat_statements 视图(如果在采样时可以访问)中捕获的。在所有 SQL 相关的部分中,通过鼠标单击语句可以高亮显示语句。同时,在单击鼠标时,会在查询统计数据行下方显示查询文本的预览。查询文本的预览可以通过第二次点击查询来隐藏。
按运行时间排列靠前的 SQL
此表包含 pg_stat_statements 视图中按运行时间(total_plan_time + total_exec_time)排列的前 pg_profile.topn 条语句。自 PostgreSQL 13 起可用。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- %Total - 该语句花费的总时间,占实例中所有语句花费总时间的百分比
- Time (s) - 在该语句中花费的时间(单位:秒)
- Elapsed - 该语句花费的总时间(total_plan_time + total_exec_time)
- Plan - 规划该语句所用的时间(total_plan_time 字段)
- Exec - 执行该查询所用的时间(total_exec_time 字段)
- JIT time (s) - JIT 执行该语句所花费的总时间,以秒为单位(jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time)
- I/O time (s):
- Read - 花费在读取数据块上的时间(blk_read_time 字段)
- Write - 写入数据块所用的时间(blk_write_time 字段)
- CPU time (s) - 花费在 CPU 上的时间。基于 pg_stat_kcache 扩展提供的数据。
- Usr - 在用户空间花费的 CPU 时间
- Sys - 在内核空间花费的 CPU 时间
- Plans - 该语句被规划过的次数(plans 字段)
- Executions - 该语句被执行过的次数(calls 字段)
按规划时间排列靠前的 SQL
在 pg_stat_statements 视图中按规划时间(total_plan_time)排列的前 pg_profile.topn 条语句。自 PostgreSQL 13 起可用。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Plan elapsed (s) - 规划此语句所用的时间(total_plan_time 字段)
- %Elapsed - 此语句的规划时间,占语句运行时间的百分比
- Plan times (ms) - 此语句的详细规划时间统计数据(单位:毫秒)
- Mean - 规划此语句所用的平均时间(mean_plan_time 字段)
- Min - 规划此语句所用的最短时间(min_plan_time 字段)
- Max - 规划此语句所用的最长时间(max_plan_time 字段)
- StdErr - 规划此语句所用时间的总体标准偏差(stddev_plan_time 字段)
- Plans - 该语句被规划过的次数(plans 字段)
- Executions - 该语句被执行过的次数(calls 字段)
按执行时间排列靠前的 SQL
在 pg_stat_statements 视图中按执行时间(total_time 或 total_exec_time)排列的前 pg_profile.topn 条语句。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Exec (s) - 执行此语句所用的时间(total_exec_time 字段)
- %Elapsed - 此语句的执行时间,占语句运行时间的百分比
- %Total - 此语句的执行时间,占实例中所有语句总的花费时间的百分比
- JIT time (s) - JIT 执行该语句所花费的总时间,以秒为单位(jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time)
- I/O time (s):
- Read - 花费在读取数据块上的时间(blk_read_time 字段)
- Write - 写入数据块所用的时间(blk_write_time 字段)
- Rows - 该语句检索或影响的行数(rows 字段)
- Execution times (ms) - 此语句的详细执行时间统计数据(单位:毫秒)
- Mean - 执行此语句所用的平均时间(mean_exec_time 字段)
- Min - 执行此语句所用的最短时间(min_exec_time 字段)
- Max - 执行此语句所用的最长时间(max_exec_time 字段)
- StdErr - 执行此语句所用时间的总体标准偏差(stddev_exec_time 字段)
- Executions - 该语句被执行过的次数(calls 字段)
按执行次数排列靠前的 SQL
在 pg_stat_statements 视图中按执行次数(calls)排列的前 pg_profile.topn 条语句。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Executions - 该语句的执行次数(calls 字段)
- %Total - 此语句的执行次数,占实例中所有语句总的执行次数的百分比
- Rows - 该语句检索或影响的行数(rows 字段)
- Mean(ms) - 此语句花费的平均时间,以毫秒为单位(mean_time 或 mean_exec_time 字段)
- Min(ms) - 此语句花费的最短时间,以毫秒为单位(min_time 或 min_exec_time 字段)
- Max(ms) - 此语句花费的最长时间,以毫秒为单位(max_time 或 max_exec_time 字段)
- StdErr(ms) - 此语句花费时间的总体标准偏差,以毫秒为单位(stddev_time 或 stddev_exec_time 字段)
- Elapsed(s) - 执行此查询所花费的总时间,以秒为单位(total_time 或 total_exec_time 字段)
按 I/O 等待时间排列靠前的 SQL
按读写时间(blk_read_time + blk_write_time)排列的前 pg_profile.topn 条语句。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- IO(s) - 此语句花费在读取和写入上的时间(I/O 时间),以秒为单位(blk_read_time + blk_write_time)
- R(s) - 此语句花费在读取上的时间,以秒为单位(blk_read_time)
- W(s) - 此语句花费在写入上的时间,以秒为单位(blk_write_time)
- %Total - 此语句的读写时间,占实例中所有语句总的读写时间的百分比
- Reads - 此语句读取的块数,分为三个子列:
- Shr - 共享块读取(shared_blks_read 字段)
- Loc - 本地块读取(local_blks_read 字段)
- Tmp - 临时块读取(temp_blks_read 字段)
- Writes - 此语句写入的块数,分为三个子列:
- Shr - 共享块写入(shared_blks_written 字段)
- Loc - 本地块写入(local_blks_written 字段)
- Tmp - 临时块写入(temp_blks_written 字段)
- Elapsed(s) - 执行此查询所花费的总时间,以秒为单位(total_time 或 total_exec_time 字段)
- Executions - 该语句的执行次数(calls 字段)
按获取的共享块数排列靠前的 SQL
按读取和命中的共享块数排列的前 pg_profile.topn 条语句,这有助于检测出处理数据量最大的语句。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- blks fetched - 获取的数据块的数量(表达式:shared_blks_hit + shared_blks_read)
- %Total - 此语句获取的数据块的数量,占实例中所有语句获取的数据块总数的百分比
- Hits(%) - 从缓冲区获取的数据块的数量,占获取的所有数据块总数的百分比
- Elapsed(s) - 此语句花费的总时间,以秒为单位(total_time 或 total_exec_time+total_plan_time 字段)
- Rows - 该语句检索或影响的行数(rows 字段)
- Executions - 该语句的执行次数(calls 字段)
按读取的共享块数排列靠前的 SQL
按读取的共享块数排列的前 pg_profile.topn 条语句,这有助于检测出读取数据量最大的语句。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Reads - 此语句读取的共享块数量(shared_blks_read 字段)
- %Total - 此语句读取的共享块数量,占实例中所有语句读取的共享块总数的百分比
- Hits(%) - 从缓冲区获取的数据块的数量,占获取的所有数据块总数的百分比
- Elapsed(s) - 此语句花费的总时间,以秒为单位(total_time 或 total_exec_time+total_plan_time 字段)
- Rows - 该语句检索或影响的行数(rows 字段)
- Executions - 该语句的执行次数(calls 字段)
按写脏的共享块数排列靠前的 SQL
按写脏的共享块数排列的前 pg_profile.topn 条语句,这有助于检测出更改数据量最大的语句。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Dirtied - 此语句写脏的共享块数量(shared_blks_dirtied 字段)
- %Total - 此语句写脏的共享块数量,占实例中所有语句写脏的共享块总数的百分比
- Hits(%) - 从缓冲区获取的数据块的数量,占获取的所有数据块总数的百分比
- WAL - 此语句生成的 WAL 总量(wal_bytes 字段)
- %Total - 此语句生成的 WAL 总量,占实例中产生的 WAL 总量的百分比(pg_current_wal_lsn() 增量)
- Elapsed(s) - 此语句花费的总时间,以秒为单位(total_time 或 total_exec_time+total_plan_time 字段)
- Rows - 该语句检索或影响的行数(rows 字段)
- Executions - 该语句的执行次数(calls 字段)
按写入的共享块数排列靠前的 SQL
按写入的数据块数排列的前 pg_profile.topn 条语句,这些语句不得不执行写入操作。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Written - 此语句写入的数据块数量(shared_blks_written 字段)
- %Total - 此语句写入的数据块数量,占实例中所有语句写入的数据块总数的百分比
- %BackendW - 此语句写入的数据块数量,占实例中后端写入的所有数据块总数的百分比(pg_stat_bgwriter 视图的 buffers_backend 字段)
- Hits(%) - 从缓冲区获取的数据块的数量,占获取的所有数据块总数的百分比
- Elapsed(s) - 此语句花费的总时间,以秒为单位(total_time 或 total_exec_time+total_plan_time 字段)
- Rows - 该语句检索或影响的行数(rows 字段)
- Executions - 该语句的执行次数(calls 字段)
按产生 WAL 日志量排列靠前的 SQL
按产生的 WAL 日志量排列的前 pg_profile.topn 条语句(自 pg_stat_statements v1.8 起可用)
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- WAL - 此语句生成的 WAL 总量(wal_bytes 字段)
- %Total - 此语句生成的 WAL 总量,占实例中产生的 WAL 总量的百分比(pg_current_wal_lsn() 增量)
- Dirtied - 此语句写脏的共享块数量(shared_blks_dirtied 字段)
- WAL FPI - 此语句生成的 WAL 全页镜像总数(wal_fpi 字段)
- WAL records - 此语句生成的 WAL 总字节数(wal_bytes 字段)
按访问的临时块数排列靠前的 SQL
按临时块读写次数排列的前 pg_profile.topn 条语句,它计算为 temp_blks_read、temp_blks_written、local_blks_read 和 local_blks_written 字段值的总和。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Local fetched - 检索过的本地块的数量(表达式:local_blks_hit + local_blks_read)
- Hits(%) - 从临时缓冲区获取的本地块的数量,占获取的所有本地块总数的百分比
- Local (blk) - 临时表中用过的块的 I/O 统计信息
- Write - 写入的本地块的数量(local_blks_written)
- %Total - 此语句写入的本地块数量,占实例中所有语句写入的本地块总数的百分比
- Read - 读取的本地块的数量(local_blks_read)
- %Total - 此语句读取的本地块数量,占实例中所有语句读取的本地块总数的百分比
- Temp (blk) - 操作中用过的数据块的 I/O 统计信息(如排序和连接)
- Write - 写入的临时块的数量(temp_blks_written)
- %Total - 此语句写入的临时块数量,占实例中所有语句写入的临时块总数的百分比
- Read - 读取的临时块的数量(temp_blks_read)
- %Total - 此语句读取的临时块数量,占实例中所有语句读取的临时块总数的百分比
- Elapsed(s) - 此语句花费的总时间,以秒为单位(total_time 或 total_exec_time+total_plan_time 字段)
- Rows - 该语句检索或影响的行数(rows 字段)
- Executions - 该语句的执行次数(calls 字段)
按临时块 I/O 时间排列靠前的 SQL
按临时块 I/O 时间排列的前 pg_profile.topn 条语句,它计算为 temp_blk_read_time 和 temp_blk_write_time 字段值的总和。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Temp I/O time (s) - 花费在临时文件块 I/O 上的时间
- Read - 读取临时文件块所用的时间,以秒为单位
- Write - 写入临时文件块所用的时间,以秒为单位
- %Total - 此语句花费在临时块 I/O 上的时间,占实例中所有语句花费在临时块 I/O 上的总时间的百分比
- Temp (blk) - 操作中用过的数据块的 I/O 统计信息(如排序和连接)
- Write - 写入的临时数据块的数量(temp_blks_written)
- %Total - 此语句写入的临时块数量,占实例中所有语句写入的临时块总数的百分比
- Read - 读取的临时块的数量(temp_blks_read)
- %Total - 此语句读取的临时块数量,占实例中所有语句读取的临时块总数的百分比
- Elapsed(s) - 此语句花费的总时间,以秒为单位(total_time 或 total_exec_time+total_plan_time 字段)
- Rows - 该语句检索或影响的行数(rows 字段)
- Executions - 该语句的执行次数(calls 字段)
资源使用量统计
此部分包含了由 pg_stat_kcache 扩展(如果在报告时间段内可用)提供的资源使用情况的统计信息。
按系统和用户时间排列靠前的 SQL
按 pg_stat_kcache 中的系统和用户时间(user_time + system_time)排列的前 pg_profile.topn 条语句。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- User Time - 使用的用户 CPU 时间
- Plan (s) - 规划期间花费的用户 CPU 时间,以秒为单位(plan_user_time 字段)
- Exec (s) - 执行期间花费的用户 CPU 时间,以秒为单位(exec_user_time 或 user_time 字段)
- %Total - 此语句花费的用户 CPU 时间,占所有语句花费的用户 CPU 总时间的百分比
- System Time - 使用的系统 CPU 时间
- Plan (s) - 规划期间花费的系统 CPU 时间,以秒为单位(plan_system_time 字段)
- Exec (s) - 执行期间花费的系统 CPU 时间,以秒为单位(exec_system_time 或 system_time 字段)
- %Total - 此语句花费的系统 CPU 时间,占所有语句花费的系统 CPU 总时间的百分比
按文件系统层的读取/写入次数排列靠前的 SQL
按 pg_stat_kcache 中的读写次数(reads + writes)排列的前 pg_profile.topn 条语句。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- Read Bytes - 文件系统层读取的字节数
- Plan - 规划期间读取的字节数(plan_reads 字段)
- Exec - 执行期间读取的字节数(exec_reads 字段)
- %Total - 此语句读取的字节数,占所有语句读取的总字节数的百分比
- Writes - 文件系统层写入的字节数(writes 字段)
- Plan - 规划期间写入的字节数(plan_writes 字段)
- Exec - 执行期间写入的字节数(exec_writes 字段)
- %Total - 此语句写入的字节数,占所有语句写入的总字节数的百分比
按 JIT 开销时间排列靠前的 SQL
按 JIT 相关的总开销时间(即 jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time)排列的前 pg_profile.topn 条语句。自 PostgreSQL 15(pg_stat_statements 1.10)起可用。
- Query ID - 在 pg_stat_statements 扩展中,以十六进制表示法提供的查询标识符(queryid)。备用的查询标识符,计算为 dbid,userid 和 queryid 的哈希值,显示在方括号中,此标识符与 pgcenter 实用程序兼容。
- Database - 语句来源的数据库名称(源自 dbid 字段)
- User - 执行此语句的用户名(源自 userid 字段)
- JIT total (s) - 花费在 JIT 上的总时间,以秒为单位(jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time)
- Generation
- Count - 语句 JIT 编译的函数总数
- Gen. time - 语句在生成 JIT 代码上所花费的总时间
- Inlining
- Count - 函数内联过的次数
- Time - 语句在内联函数上花费的总时间(单位:秒)
- Optimization
- Count - 语句优化过的次数
- Time - 语句在优化上花费的总时间(单位:秒)
- Emission
- Count - 代码已发放的次数
- Time - 语句在发放代码上花费的总时间(单位:秒)
- Time (s) - 此语句花费的时间(单位:秒)
- Plan - 规划该语句所用的时间(total_plan_time 字段)
- Exec - 执行该查询所用的时间(total_exec_time 字段)
- I/O time (s):
- Read - 花费在读取数据块上的时间(blk_read_time 字段)
- Write - 写入数据块所用的时间(blk_write_time 字段)
SQL 文本的完整列表
查询报告中提到的所有语句的文本。您可以在任何统计表中使用 Query ID 链接,来访问并查看查询文本。此部分中的查询限制在 pg_profile.max_query_length(默认值为 20000)个字符,但是可以从扩展表中获取完整的查询文本。该列表中的同一个 queryid 条目,在不同的示例中会有多个捕获的实际查询文本。仅会列出最近捕获的三个查询文本。