PostgreSQL数据库pg_test_timing学习使用
来源:互联网 发布:java模拟发送get请求 编辑:程序博客网 时间:2024/06/03 08:00
pg_test_timing 是什么
pg_test_timing 是postgresql数据库提供的一个工具,用来评测操作系统计时效率和开销的,简单的说就是gettimeofday (操作系统方法)返回快慢。
pg_test_timing 使用场景
目前知道的一个场景是,查看度量SQL执行时间经常使用两种方法\timing SQL 和 explain analyze SQL。但是通常 explain analyze SQL 统计的执行时间长,有些机器长很多。为什么呢,其中一个原因是explain analyze SQL 会为执行的每一个步骤添加计时信息,会有计时的开销。对于计时效率比较差的机器,explain analyze SQL 统计的执行时间就会偏离实际时间很多。下面的例子explain analyze 比\timing 多了5600ms !
例如:
znspgl=# explain analyze select count(*) from (select distinct(c_bh_aj) from db_znspgl.t_zlglpt_wt where d_cjrq between '20160913' and '20170909' ) t; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------ Aggregate (cost=347567.23..347567.24 rows=1 width=0) (actual time=6954.845..6954.846 rows=1 loops=1) -> Unique (cost=0.56..343310.31 rows=340554 width=33) (actual time=0.034..5969.209 rows=1322165 loops=1) -> Index Only Scan using i_zlglpt_wt_zh01 on t_zlglpt_wt (cost=0.56..336784.36 rows=2610380 width=33) (actual time=0.031..2840.502 rows=2644330 loops=1) Index Cond: ((d_cjrq >= '2016-09-13'::date) AND (d_cjrq <= '2017-09-09'::date)) Heap Fetches: 0 Planning time: 0.172 ms Execution time: 6954.890 ms(7 rows)znspgl=# \timing onTiming is on.znspgl=# select count(*) from (select distinct(c_bh_aj) from db_znspgl.t_zlglpt_wt where d_cjrq between '20160913' and '20170909' ) t; count --------- 1322165(1 row)Time: 1322.715 ms
pg_test_timing 如何使用
pg_test_timing 位于PostgresSQL的安装目录下/bin 目录中,即$PGHOME/bin/pg_test_timing。和其他的linux命令使用方法一样,pg_test_timing –help可以查看用法。
- 示例1:
[thunisoft@bogon ~]$ pg_test_timingTesting timing overhead for 3 seconds.Per loop time including overhead: 22.37 nsecHistogram of timing durations:< usec % of total count 1 97.77008 131116962 2 2.22722 2986862 4 0.00217 2910 8 0.00004 55 16 0.00048 644 32 0.00001 18 64 0.00000 3 128 0.00000 2
- 示例2:
[thunisoft@localhost ~]$ pg_test_timingTesting timing overhead for 3 seconds.Per loop time including overhead: 63.10 nsecHistogram of timing durations:< usec % of total count 1 93.92173 44651011 2 6.06895 2885219 4 0.00044 209 8 0.00096 455 16 0.00294 1398 32 0.00393 1867 64 0.00036 169 128 0.00031 145 256 0.00035 166 512 0.00004 18 1024 0.00000 2 2048 0.00000 1
pg_test_timing 结果如何评判
首先,看Per loop time including overhead(平均每次循环开销)。
示例1的平均每次循环开销 为22纳秒
示例2的平均每次循环开销 为63纳秒
其次,看柱状图统计。
示例1,显示97%的循环在1微秒(100纳秒)内完成
示例2,显示93%的循环在1微秒(100纳秒)内完成
好的机器应该显示90%以上的调用都在1微秒(100纳秒)内完成
阅读全文
0 0
- PostgreSQL数据库pg_test_timing学习使用
- PostgreSQL数据库-PL/PGSQL 使用学习
- PostgreSQL数据库学习
- PostgreSQL数据库学习手册
- postgresql数据库学习
- 学习Postgresql数据库
- postgresql 数据库安装使用
- PostgreSql数据库使用
- PostgreSQL学习手册(数据库维护)
- PostgreSQL学习手册(数据库维护)
- PostgreSQL学习手册(数据库管理)
- PostgreSQL学习手册(数据库维护)
- postgresql数据库操作指令学习
- PostgreSQL学习手册(数据库管理)
- PostgreSQL学习手册(数据库维护)
- PostgreSQL学习手册(数据库管理)
- PostgreSQL学习手册(数据库维护)
- django框架使用postgresql数据库
- 前沿观察:云数据库安全发展趋势
- SAP UI5初步结构分析研究(九)(HAT安装以及云ide部署Android App)
- Redis简介及单机版安装教程
- 判断是否存在pdf阅读器
- 卷积神经网络概念与原理
- PostgreSQL数据库pg_test_timing学习使用
- hadoop的三大核心组件详解
- Photon_部署PhotonServer 服务端项目_011
- 535 Error:authentication failed
- Bootstrap Table 中文文档(完整翻译版)
- 10分钟Pandas教程
- 启用nginx status状态详解
- superset 开源数据可视化工具(For Apache Kylin)使用说明
- 计算列