如何在Postgres中有效地真空分析表格

时间:2016-05-16 19:24:31

标签: sql postgresql vacuum query-analyzer

我在postgres上运行了一个巨大的查询,其中一个连接表总是进行顺序扫描。列上的索引存在,postgres只是没有使用它。我进行了真空分析,然后postgres查询计划立即更改为进行索引扫描。

我的问题是进行真空分析的最有效方法是什么。它锁定表吗?如果是这样,您如何真空分析实时生产表?

1 个答案:

答案 0 :(得分:1)

您只能运行分析,也不需要运行真空。 Sintax将是:

ANALYZE [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ]

在文件中说明:

ANALYZE requires only a read lock on the target table, so it can run in parallel with other activity on the table.

您可以在此处找到更多信息:

http://www.postgresql.org/docs/9.4/static/sql-analyze.html

https://wiki.postgresql.org/wiki/Introduction_to_VACUUM,_ANALYZE,_EXPLAIN,_and_COUNT