问题标签 [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.
postgresql - Azure Postgres AUTOVACUM AND ANALYZE THRESHOLD - 如何更改它?
我又带着另一个 Postgres 问题来了。我们正在使用 Azure 的托管服务,该服务使用autovacuum
. 两者都是自动的vacuum
。statistics
我遇到的问题是,对于特定查询,当它在特定时间运行时,计划不好。我意识到,在手动收集统计数据后,该计划再次表现得更好。
从 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 次会触发自动分析?因为我没有看到这种行为。
如果我更改表的值,我应该对它们的索引做同样的事情吗?有没有像级联或类似的选项改变表使值也会影响相应的索引?
提前感谢您的任何建议。如果您需要更多详细信息,请告诉我。
python - 如何使用 CSV 文件并使用 CSV 文件获取用户的输入?
我使用 .csv 文件获得了有关车祸统计的数据集。我希望用户输入 State 并显示有关该 State 的所有信息以供用户查看。怎么能这样做?
数据集:
我在想这样的事情:
postgresql - Postgresql 如何更新目录统计信息
如何更新 postgresql 中的目录统计信息以检查查询性能。我在谷歌上搜索,但在互联网上没有找到任何关于更新目录统计信息的信息
apache-spark - ANALYZE TABLE 显示 Spark 中所有统计信息的 NULL
我试图计算统计信息并获取各个列的统计信息。而且我看到所有列的所有统计信息都为 NULL。不知道我在这里可能犯了什么错误。
订单表:我们可以看到它有很多数据