使用数据库监视器监视查询
Start Database Monitor (STRDBMON) 命令实时收集有关查询的信息,并将此信息存储在输出表中。 此信息可帮助您确定系统和查询的性能是否良好,或者它们是否需要进行微调。 数据库监视器在使用时可能会产生大量 CPU 和磁盘存储开销。
您可以为特定查询,系统上的每个查询或系统上的一组查询收集性能信息。 当作业由多个监视器监视时,每个监视器都将行记录到不同的输出表中。 您可以通过输出数据库表中的唯一标识号来标识行。
使用Start Database Monitor (STRDBMON)命令启动监视器时,监视器会自动在IBM® i Access Client Solutions(ACS) 中注册,并显示在 ACS 监视器列表中。
注: 数据库监视器还包含 SQL 语句文本和变量值。 如果变量值或 SQL 语句包含敏感数据,那么您应该在未经公共授权的库中创建数据库监视器,以防止敏感数据暴露。
您可以收集哪些类型的统计信息
数据库监视器提供的信息与查询优化器调试消息 (Start Debug (STRDBG)) 和 Print SQL information (PRTSQLINF) 命令提供的信息相同。 以下是数据库监视器收集的其他信息的采样:
- 系统和作业名
- SQL 语句和子查询号
- 开始和结束时间戳记
- 估计处理时间
- 查询的表中的总行数
- 选择 的行 数
- 估计的选择行数
- 估计的连接行数
- 建议索引的键列
- 总优化时间
- 连接类型和方法
- ODP实现
如何使用性能统计信息
您可以使用这些性能统计信息来生成各种报告。 例如,您可以包含显示以下查询的报告:
- 使用丰富的系统资源。
- 需要很长时间才能执行。
- 由于查询控制规则时间限制而未运行。
- 执行期间创建临时索引
- 在执行期间使用查询排序
- 通过创建包含查询优化器建议的键的键控逻辑文件,可以更快地执行此操作。
注: 由结束请求取消的查询通常不会生成完整的性能统计信息集。 但是,它确实包含有关如何优化查询的所有信息,但运行时或多步骤查询信息除外。