gpt4 book ai didi

postgresql - 我可以在 PostgreSQL 9.3 中用 TRUNCATE + COPY/FREEZE 替换 TRUNCATE + COPY + ANALYZE

转载 作者:行者123 更新时间:2023-11-29 12:04:51 27 4
gpt4 key购买 nike

我正在尝试优化我的批量加载程序。

目前我分步加载数据(我不遵循下面的 SQL 语法,只遵循算法):

BEGIN
TRUNCATE table
COPY into table
ANALYZE table
COMMIT

PostgreSQL 9.3 之前,这是唯一推荐的重新加载表的方法。版本 9.3 引入了可与 COPY 命令一起使用的 FREEZE 选项。标准文档说:

FREEZE

Requests copying the data with rows already frozen, just as they would be after running the VACUUM FREEZE command. This is intended as a performance option for initial data loading. Rows will be frozen only if the table being loaded has been created or truncated in the current subtransaction, there are no cursors open and there are no older snapshots held by this transaction.

我的直接问题是在 COPY/FREEZE 之后是否还需要运行 ANALYZE。标准文档没有给出任何直接建议。以下序列是否足够,还是我仍需要运行 ANALYZE

BEGIN
TRUNCATE table
COPY/FREEZE table
COMMIT

谢谢!

最佳答案

是的,您仍然应该ANALYZE 以在您COPY 中的数据后强制立即生成表统计信息。

元组是否被卡住与统计无关,这是一种避免以后反环绕真空事件的方法。

关于postgresql - 我可以在 PostgreSQL 9.3 中用 TRUNCATE + COPY/FREEZE 替换 TRUNCATE + COPY + ANALYZE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com