J. Mini Asked: 2024-02-15 02:54:07 +0800 CST2024-02-15 02:54:07 +0800 CST 2024-02-15 02:54:07 +0800 CST SQL Server 查询存储的 Postgres 等效项是什么? 772 我认为查询存储是微软的SQL Server在过去十年中最好的想法。我担心当我转到 Postgres 时我会非常想念它。Postgres 与 SQL Server 的查询存储有什么等价物? sql-server 3 个回答 Voted Best Answer Lukas Fittl 2024-02-16T09:58:44+08:002024-02-16T09:58:44+08:00 这里最常见的方法是“pg_stat_statements”,它记录自上次重置以来在 Postgres 数据库上运行的所有查询: https://www.postgresql.org/docs/current/pgstatstatements.html 请注意,这不会随着时间的推移对活动进行任何跟踪(即“过去一小时内运行了多少个查询”) - 为此,您需要一个外部进程来对数据进行快照pg_stat_statements,并对之前记录的快照进行比较,匹配查询(dbid, userid, queryid, toplevel). 您可以自己编写脚本,也可以使用可以为您执行此操作的现有第三方工具。有关执行此操作的一些解决方案的概述,请参阅https://wiki.postgresql.org/wiki/Monitoring#Postgres-centric_monitoring_solutions 。 Basil Titus 2024-02-16T17:23:54+08:002024-02-16T17:23:54+08:00 既然您提到了 PostgreSQL,我相信这是一个自我管理的实例,对于云管理实例来说,Azure Managed PostgreSQL Service它们有自己的自定义构建的查询存储。 对于自我管理的 PostgreSQL 来说,没有什么比Query store内置更好的了。用于获取查询统计信息的最广泛使用的视图是pg_stat_statements您需要在配置文件中启用的视图。 虽然 pg_stat_statements 记录查询执行指标,但没有执行日期/时间记录来过滤在特定时间段内运行的查询,因为 pg_stat_statements 是根据用户和查询进行累积和聚合的。如果您正在寻找这样的过滤机制,则需要使用pg_watch2扩展等工具对 pg_stat_statements 设置时间序列监控,以将此数据放入另一个数据库中进行分析,这是大多数其他监控工具也在做的事情。 Stephen Morris - Mo64 2024-02-15T17:36:10+08:002024-02-15T17:36:10+08:00 那就是 QueryStore https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-query-store 假设您要迁移到 Azure。Postgres 的部分问题在于,它都被称为 Postgres,但不同的供应商提供了非常不同的功能,并且让各种扩展一起使用也很“有趣”
这里最常见的方法是“pg_stat_statements”,它记录自上次重置以来在 Postgres 数据库上运行的所有查询:
https://www.postgresql.org/docs/current/pgstatstatements.html
请注意,这不会随着时间的推移对活动进行任何跟踪(即“过去一小时内运行了多少个查询”) - 为此,您需要一个外部进程来对数据进行快照
pg_stat_statements
,并对之前记录的快照进行比较,匹配查询(dbid, userid, queryid, toplevel)
.您可以自己编写脚本,也可以使用可以为您执行此操作的现有第三方工具。有关执行此操作的一些解决方案的概述,请参阅https://wiki.postgresql.org/wiki/Monitoring#Postgres-centric_monitoring_solutions 。
既然您提到了 PostgreSQL,我相信这是一个自我管理的实例,对于云管理实例来说,
Azure Managed PostgreSQL Service
它们有自己的自定义构建的查询存储。对于自我管理的 PostgreSQL 来说,没有什么比
Query store
内置更好的了。用于获取查询统计信息的最广泛使用的视图是pg_stat_statements
您需要在配置文件中启用的视图。虽然 pg_stat_statements 记录查询执行指标,但没有执行日期/时间记录来过滤在特定时间段内运行的查询,因为 pg_stat_statements 是根据用户和查询进行累积和聚合的。如果您正在寻找这样的过滤机制,则需要使用
pg_watch2
扩展等工具对 pg_stat_statements 设置时间序列监控,以将此数据放入另一个数据库中进行分析,这是大多数其他监控工具也在做的事情。那就是 QueryStore
https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-query-store
假设您要迁移到 Azure。Postgres 的部分问题在于,它都被称为 Postgres,但不同的供应商提供了非常不同的功能,并且让各种扩展一起使用也很“有趣”