我正在尝试对某些东西进行基准测试。我想创建一个索引并在 plpgsql 块中获取它的大小。
这有效:
haki=# create index ix on t(n);
CREATE INDEX
haki=# select pg_relation_size('ix');
pg_relation_size
------------------
22487040
当我在 plpgsql 块中尝试相同时,我得到ERROR: relation "ix" does not exist
:
haki=# DO $$DECLARE
haki$# s int;
haki$# BEGIN
haki$# PERFORM 'create index ix on t(n)';
haki$# SELECT pg_relation_size('ix') INTO s;
haki$# RAISE NOTICE 'size is %', s;
haki$# END$$;
ERROR: relation "ix" does not exist
LINE 1: SELECT pg_relation_size('ix')
我猜这与 DDL 是事务性的并且块未提交这一事实有关(我也可能是错的!)。但是,我无法找到解决方法。
是否可以获取在 plpsql 块中创建的索引的大小?