问题标签 [table-statistics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
94 浏览

postgresql - Azure Postgres AUTOVACUM AND ANALYZE THRESHOLD - 如何更改它?

我又带着另一个 Postgres 问题来了。我们正在使用 Azure 的托管服务,该服务使用autovacuum. 两者都是自动的vacuumstatistics

我遇到的问题是,对于特定查询,当它在特定时间运行时,计划不好。我意识到,在手动收集统计数据后,该计划再次表现得更好。

从 Azure 的文档中,我得到了以下信息:

真空进程读取物理页面并检查死元组。shared_buffers 中的每个页面都被认为具有 1 的成本 (vacuum_cost_page_hit)。如果存在死元组,则所有其他页面的成本为 20 (vacuum_cost_page_dirty),如果不存在死元组,则认为成本为 10 (vacuum_cost_page_miss)。当进程超过 autovacuum_vacuum_cost_limit 时,vacuum 操作停止。

达到限制后,进程在再次启动之前休眠 autovacuum_vacuum_cost_delay 参数指定的持续时间。如果未达到限制,则 autovacuum 在 autovacuum_naptime 参数指定的值之后启动。

总之,autovacuum_vacuum_cost_delay 和 autovacuum_vacuum_cost_limit 参数控制每单位时间允许多少数据清理。请注意,对于大多数定价层来说,默认值太低。这些参数的最佳值取决于定价层,应进行相应配置。

autovacuum_max_workers 参数确定可以同时运行的最大 autovacuum 进程数。

使用 PostgreSQL,您可以在表级别或实例级别设置这些参数。现在,只能在 Azure Database for PostgreSQL 中的表级别设置这些参数。

假设我想强调特定表的默认值,因为目前所有表都使用整个数据库的默认值。

在此处输入图像描述

请记住,我可以尝试使用(X我不知道在哪里)

目前我有这些值pg_stat_all_tables

在此处输入图像描述

到目前为止,这两个表是获得大部分 DML 活动的表。

问题

  • 如何确定 auto_vacuum 的这些特定参数的哪些值最适合具有大量 dml 活动的表?
  • 如何强制 Postgres 对这些表运行更多次自动分析,以便获得更多最新统计信息?根据文档

autovacuum_analyze_threshold

指定在任何一个表中触发 ANALYZE 所需的最小插入、更新或删除元组数。默认值为 50 个元组。该参数只能在 postgresql.conf 文件或服务器命令行中设置;但是可以通过更改表存储参数来覆盖单个表的设置。

  • 这是否意味着删除、更新或插入达到 50 次会触发自动分析?因为我没有看到这种行为。

  • 如果我更改表的值,我应该对它们的索引做同样的事情吗?有没有像级联或类似的选项改变表使值也会影响相应的索引?

提前感谢您的任何建议。如果您需要更多详细信息,请告诉我。

0 投票
1 回答
51 浏览

python - 如何使用 CSV 文件并使用 CSV 文件获取用户的输入?

我使用 .csv 文件获得了有关车祸统计的数据集。我希望用户输入 State 并显示有关该 State 的所有信息以供用户查看。怎么能这样做?

数据集:

我在想这样的事情:

0 投票
0 回答
29 浏览

postgresql - Postgresql 如何更新目录统计信息

如何更新 postgresql 中的目录统计信息以检查查询性能。我在谷歌上搜索,但在互联网上没有找到任何关于更新目录统计信息的信息

0 投票
0 回答
16 浏览

apache-spark - ANALYZE TABLE 显示 Spark 中所有统计信息的 NULL

我试图计算统计信息并获取各个列的统计信息。而且我看到所有列的所有统计信息都为 NULL。不知道我在这里可能犯了什么错误。

订单表:我们可以看到它有很多数据