gpt4 book ai didi

sql - 索引上的 ANALYZE 命令在 PostgreSQL 中返回警告

转载 作者:行者123 更新时间:2023-12-01 21:29:17 25 4
gpt4 key购买 nike

阅读文档后,我发现 Analyze 是收集有关给定表的信息,计划程序稍后会使用这些信息来计划查询的执行。在 Oracle 中,有一个分析索引的选项。对于 PostgreSQL,ANALYZE 命令返回索引警告。我认为索引对 PostgreSQL 应该同样重要,所以 PostgreSQL 不支持它的原因。我可能遗漏了一些东西,有人可以指出正确的文档,以便我对此有更多的了解吗?

postgres=# Create table test(empno integer);
CREATE TABLE
postgres=# create index idx_test1 on test(empno );
CREATE INDEX
postgres=# \di idx_test1
List of relations
Schema | Name | Type | Owner | Table
--------+-----------+-------+---------+-------
public | idx_test1 | index | Xyz | test
(1 row)

postgres=# analyze public.idx_test1
postgres-# ;
2020-06-29 16:37:30.665 IST [118434] WARNING: skipping "idx_test1" --- cannot analyze non-tables or special system tables
WARNING: skipping "idx_test1" --- cannot analyze non-tables or special system tables
ANALYZE
postgres=#

最佳答案

ANALYZE 将接受存储在 pg_class 系统目录中的任何对象,即(分区或非分区)表,(分区或非分区)索引、外部表、序列、TOAST 表、 View 和物化 View 。

但是,它只会处理分区或非分区表和物化 View 。这些是收集统计数据有意义的唯一对象。对于所有其他对象类型,您将收到类似于您收到的警告,并且将跳过该对象。

要收集索引列或表达式的统计信息,ANALYZE定义索引的表。

关于sql - 索引上的 ANALYZE 命令在 PostgreSQL 中返回警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62636843/

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