理解查询性能模式本质上是查询性能优化的基础。在许多方面,规定如何数据库集群的发展。还有明显的直接和间接成本的内涵。
PostgreSQL通过大量的编目视图提供了非常详细的统计数据和扩展,可以很容易地添加到提供更详细的查询统计。每个视图侧重于某一方面,照片几乎总是需要缝合结合不同的数据集。仍然需要努力和,整个照片可能不完整。
pg_stat_moniraybet雷竞技竞猜在线官网tor扩展试图提供一个更全面的图片通过提供急需的单一视图的查询性能的见解。扩展在过去一年一直在发展,现在接近GA版本。
一些有用的扩展
现在,你也许是依靠数量的扩展了解查询的行为,在计划和执行阶段的时间,同时最小/最大/价值观,索引,查询计划,客户端应用程序的细节。这里有一些扩展,您可能已经非常熟悉。
pg_stat_activity
这种观点是默认PostgreSQL。它提供了每一行文本服务器进程以及当前活动和查询。
如果你想了解更多关于它,跳的官员PostgreSQL文档在这里。
pg_stat_statements
这个扩展是contrib包的一部分提供的PostgreSQL服务器。然而,你必须手动创建扩展。query-wise聚合的统计数据是指最小/最大/ /标准偏差为执行和规划时间和各种有用的信息和查询文本。
你可以阅读更多关于pg_stat_statements官方PostgreSQL的文档网站。
auto_explain
另一个有用的扩展是由PostgreSQL服务器提供的。它转储服务器日志查询计划的任何查询GUC超过指定时间阈值
(大统一配置)。
你可以找到更多关于auto_explain在这里。
pg_stat_raybet雷竞技竞猜在线官网monitor
同时所有前面提到的观点/扩展本身是伟大的,需要手动将客户机/从pg_stat_activity连接信息,从pg_stat_statements统计数据,查询计划从auto_analyze完成数据集理解查询性能模式
精确的痛苦pg_stat_raybet雷竞技竞猜在线官网monitor减轻。
功能设置增长在过去的一年里,提供,在单一视图,所有的绩效信息,您可能需要调试查询性能较低。更多关于扩展看到我们的信息GitHub库或特定于用户的文档,看我们用户指南。
特性集
一些特性,是早期版本已经讨论的一部分这个博客然而,出于完整性的考虑,我打算在这里讨论这些。
- 时间间隔分组:提供一套不断增加的数量,而是pg_stat_monitor计算统计数量配置的时间间隔;raybet雷竞技竞猜在线官网桶的时候了。这允许更好的数据的准确性,尤其是在高分辨率的情况下或不可靠的网络。
- 多维分组:虽然pg_stat_statements组计数器(userid, dbid queryid) pg_stat_monitor更高精度:使用一个更详细的组raybet雷竞技竞猜在线官网
-
- 桶ID(桶),
-
- 用户ID(标识),
-
- 数据库ID (dbid),
-
- 查询ID (queryid),
-
- 客户端IP地址(client_ip),
-
- 计划ID (planid),
-
- 应用程序名称(application_name)。
这允许您深入到查询的性能来自特定客户端地址和应用程序,我们在Percona发现非常有价值的在许多情况下。雷竞技下载官网
- 捕获实际参数查询:pg_stat_mraybet雷竞技竞猜在线官网onitor允许您选择如果你想看到实际使用占位符参数查询或查询的例子。
- 查询计划现在:每个SQL是伴随着其实际构建了其执行计划。同时,我们发现有查询参数值是非常有用的,因为您可以运行解释,或容易玩修改查询,让它更好的运行,以及对查询进行沟通清晰与其他dba和应用程序开发人员在讨论。
- 表的访问统计数据:这让我们轻松地识别所有的查询访问给定的表。这个集合是平价pg_stat_statements所提供的资料。
- 柱状图:可视化表示它可以帮助识别问题时很有帮助。的帮助下直方图函数,您现在可以查看时间/调用数据直方图来响应一个SQL查询。是的,它甚至在psql工作。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
选择
*
从
柱状图
(
0
,
“F44CD1B4B33A47AF”
)
作为
一个
(
范围
文本
,
频率
INT
,
酒吧
文本
)
;
范围
|
频率
|
酒吧
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
+
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
(
0
- - - - - -
3
)
}
|
2
|
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
(
3
- - - - - -
10
)
}
|
0
|
(
10
- - - - - -
31日
)
}
|
1
|
■■■■■■■■■■■■■■■
(
31日
- - - - - -
One hundred.
)
}
|
0
|
(
One hundred.
- - - - - -
316年
)
}
|
0
|
(
316年
- - - - - -
1000年
)
}
|
0
|
(
1000年
- - - - - -
3162年
)
}
|
0
|
(
3162年
- - - - - -
10000年
)
}
|
0
|
(
10000年
- - - - - -
31622年
)
}
|
0
|
(
31622年
- - - - - -
100000年
)
}
|
0
|
(
10
行
)
|
- 功能:它可能会感到惊讶,但我们确实理解函数可能在内部执行语句! ! !帮助缓解跟踪和分析,pg_stat_monitor现在提供了一个专栏,专门帮助跟踪的查询语句,这raybet雷竞技竞猜在线官网样您就可以回溯到原始功能。
- 名字的关系:关系用于查询可用的“关系”专栏pg_stat_monitor视图。raybet雷竞技竞猜在线官网这样可以减少工作,使分析更简单和更快。
- 查询类型:查询分类与选择、插入、更新或删除,分析变得简单。这是另一个努力减少你的结束,另一个由pg_stat_monitor简化。raybet雷竞技竞猜在线官网
|
1
2
3
4
5
6
7
8
9
10
|
选择
桶
,
字符串的子串
(
查询
,
0
,
50
)
作为
查询
,
cmd_type
从
pg_stat_raybet雷竞技竞猜在线官网monitor
在哪里
elevel
=
0
;
桶
|
查询
|
cmd
_类型
- - -
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
+
- - -
- - -
- - -
- - -
- - -
4
|
结束
|
4
|
选择
abalance
从
pgbench_accounts
在哪里
援助
=
|
选择
4
|
真空
pgbench
_分支机构
|
4
|
选择
数
(
*
)
从
pgbench
_分支机构
|
选择
4
|
更新
pgbench_accounts
集
abalance
=
abalance
+
|
更新
4
|
截断
pgbench
_历史
|
4
|
插入
成
pgbench
_历史
(
tid
,
报价
,
援助
,
δ
|
插入
|
- 查询元数据:谷歌Sqlcommenter是一个有用的工具,它在某种程度上桥梁,ORM库和理解数据库性能之间的差距。我们支持它。所以,你现在可以把任何键值数据在评论/ *…* /语法(见Sqlcommenter文档)在您的SQL语句中,信息将由pg_stat_monitor解析和可用在评论中列在pg_stat_monitor视图中。raybet雷竞技竞猜在线官网
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
创建
扩展
hstore
;
创建
函数
text_to_hstore
(
年代
文本
)
返回
hstore
作为
美元
美元
开始
返回
hstore
(
年代
::
文本
(
]
)
;
异常
当
其他人
然后
返回
零
;
结束
;
美元
美元
语言
plpgsql
严格的
;
选择
1
作为
全国矿工工会
/
*
{
“应用程序”
,
java_app
,
“real_ip”
,
192.168.1.1
}
*
/
;
全国矿工工会
- - -
- - -
- - - - - -
1
(
1
行
)
|
|
1
2
3
4
|
选择
查询
,
text_to_hstore
(
评论
)
- >
“real_ip”
作为
real_ip
从
pg_stat_raybet雷竞技竞猜在线官网monitor
;
查询
|
real_ip
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
选择
美元
1
作为
全国矿工工会
/
*
{
“应用程序”
,
psql_app
,
“real_ip”
,
192.168.1.3
)
*
/
|
192.168.1.1
|
- 记录错误和警告:在不同的监测/静力学收集器工具,大多数工具/raybet雷竞技竞猜在线官网扩展只监视成功查询。但是在许多情况下,监控错误、警告和日志raybet雷竞技竞猜在线官网给调试这个问题有意义的信息。pg_stat_raybet雷竞技竞猜在线官网monitor不仅监视错误/警告/日志还收集这些查询统计信息。在PostgreSQL查询错误/警告有错误级别(elevel), SQL代码(sqlcode),和一个错误消息。Pg_stat_raybet雷竞技竞猜在线官网monitor收集所有这些信息连同它的总量。
|
1
2
3
4
5
6
7
|
选择
字符串的子串
(
查询
,
0
,
50
)
作为
查询
,
decode_error_level
(
elevel
)
作为
elevel
,
sqlcode
,
调用
,
字符串的子串
(
消息
,
0
,
50
)
消息
从
pg_stat_raybet雷竞技竞猜在线官网monitor
;
查询
|
elevel
|
sqlcode
|
调用
|
消息
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
+
- - -
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - - - - -
+
- - -
- - -
- - -
- - - - - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
选择
字符串的子串
(
查询
,
美元
1
,
美元
2
)
作为
查询
,
decode_error
|
|
0
|
1
|
选择
桶
,
字符串的子串
(
查询
,
美元
1
,
美元
2
)
,
decode_error_le
|
|
0
|
3
|
选择
1
/
0
;
|
错误
|
130年
|
1
|
部门
通过
零
|
我们走了很长的路
什么开始作为一个概念正在接近其最终的方法。pg_stat_moniraybet雷竞技竞猜在线官网tor扩展发展,已成为非常功能丰富。我们没有怀疑它的用途对于dba,性能工程师,应用程序开发人员,谁需要看查询性能。我们相信它可以帮助节省很多时间和帮助识别意想不到的查询行为。
pg_stat_raybet雷竞技竞猜在线官网monitor可以在Github。我们释放它来自社区的反馈对我们所做的和我们应该做不同之前我们发布pg_stat_monitor一般可用版本支持。raybet雷竞技竞猜在线官网请检查一下,给我们留下,文件的问题,或者做一个把请求!






