多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 18.9\. 运行时统计 ## 18.9.1\. 查询和索引统计收集器 下面的参数控制服务器范围的统计搜集特性。如果启用了统计搜集, 那么生成的数据可以通过`pg_stat`和 `pg_statio`系统视图家族访问。 参见[Chapter 27](#calibre_link-1179)获取更多信息。 `track_activities` (`boolean`) 统计每个会话执行的命令及其开始执行的时间。这个选项缺省是开启的。 请注意即使把它打开,这个信息也不是所有用户都可见的, 只有超级用户和会话的所有者才能看到;因此它不应该是个安全漏洞。 只有超级用户可以改变这个设置。 `track_activity_query_size` (`integer`) 指定跟踪当前执行命令的预留字节数, 为了每个活动会话,以及`pg_stat_activity`.`query`字段。 默认值是1024。这个参数只能在服务器启动时设置。 `track_counts` (`boolean`) 打开数据库活动的统计收集。此参数缺省是开启的,因为自动清理守护进程需要收集信息。 只有超级用户可以更改此设置。 `track_io_timing` (`boolean`) 启动数据库定时I/O调用。此参数缺省是关闭的,因为它会反复查询操作系统当前的时间, 这可能会导致某些平台的显著开销。 您可以使用[pg_test_timing](#calibre_link-1203)工具测量系统上的定时开销。 在[EXPLAIN](#calibre_link-575)的输出中通过, [pg_stat_statements](#calibre_link-394)使用`BUFFERS`选项时。 I/O时序信息显示在[pg_stat_database](#calibre_link-1453)上, 只有超级用户才能更改此设置。 `track_functions` (`enum`) 启用函数调用计数和时间跟踪。指定`pl`仅跟踪过程语言函数, `all`跟踪SQL和C语言函数。 默认是`none`,禁用函数统计跟踪。 只有超级用户可以更改此设置。 > **Note:** 足够简单的以便"内联"到调用查询的SQL语言函数将不被跟踪, 而不管这些设置。 `update_process_title` (`boolean`) 服务器每收到一个新的SQL命令就更新进程标题。 进程标题可以通过`ps`命令或Windows下的进程管理器查看。 只有超级用户可以改变这个设置。 `stats_temp_directory` (`string`) 设置存储临时统计数据的目录。这可以是相对于数据目录的相对路径或绝对路径。 缺省是`pg_stat_tmp`。 指向基于RAM文件系统将减少物理I/O要求,并可能导致性能提升。 此参数只能在`postgresql.conf`文件或者服务器命令行上设置。 ## 18.9.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` 不能和其它任何针对每个模块统计的选项一起打开。所有这些选项都是缺省关闭的。 只有超级用户才能修改这些设置。