17.8. Run-Time Statistics #
17.8.1. 查询和索引统计收集器 #
这些参数控制一个服务器范围内的统计收集功能。启用统计收集后,产生的数据可以通过pg_stat和pg_statio系列系统视图访问。更多信息请参阅第 25 章。
注意
从PostgreSQL 8.2 开始,stats_command_string控制的是一个独立的数据收集机制,可以在统计收集子进程是否运行之外独立地开启或关闭。该子进程只是用来支持块级或行级统计的收集。
stats_command_string(boolean) #启用对每个会话当前正在执行的命令的信息收集,包括该命令开始执行的时间。此参数默认打开。注意,即使启用了它,这些信息也不是对所有用户可见,只有超级用户和被报告会话的拥有者才能看到;因此它不会带来安全风险。只有超级用户能更改这个设置。
update_process_title(boolean) #启用后,每次服务器接收到新的 SQL 命令时都会更新进程标题。进程标题通常通过
ps命令查看,在 Windows 上则可以使用Process Explorer。只有超级用户能更改这个设置。stats_start_collector(boolean) #控制服务器是否应启动统计收集子进程。它默认是打开的,但如果你确定对收集统计或运行自动清理都没有兴趣,可以把它关掉。此参数只能在服务器启动时设置,因为收集子进程无法在运行中启动或停止。(不过,只要子进程存在,实际收集统计的范围可以在服务器运行期间改变。)
stats_block_level(boolean) #启用对数据库活动的块级统计收集。此参数默认关闭。只有超级用户能更改这个设置。
stats_row_level(boolean) #启用对数据库活动的行级统计收集。此参数默认关闭。只有超级用户能更改这个设置。
stats_reset_on_server_start(boolean) #如果打开,已收集的块级和行级统计会在每次服务器重启时清零。如果关闭,统计会在服务器重启之间持续累积。此参数默认关闭。此参数只能在服务器启动时设置。
17.8.2. 统计监控 #
log_statement_stats(boolean)log_parser_stats(boolean)log_planner_stats(boolean)log_executor_stats(boolean)对于每个查询,将各自模块的性能统计输出到服务器日志中。这是一个简单的性能分析工具,类似于Unix getrusage()操作系统功能。
log_statement_stats报告整个语句的统计信息,而其他选项报告每个模块的统计信息。log_statement_stats不能与任何单独模块选项一起启用。所有这些选项默认情况下都是禁用的。只有超级用户才能更改这些设置。