You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 9.2中如何查询序列的cache_size值

PostgreSQL 9.2 版本的information_schema.sequences视图本身未暴露cache_size字段,存储序列核心元数据的系统表pg_sequence是10.0版本才引入的,因此高版本的查询方案在9.2环境下无法生效。9.2版本可通过以下方式查询序列缓存值:

单个序列查询

PostgreSQL 10之前的版本中,每个序列本质是一类特殊的单行关系,可直接通过SELECT语句读取其内置字段获取配置,针对你创建的SEQUENCE1,查询语句如下:

-- 若序列名创建时加双引号保留了大写格式,需要用"SEQUENCE1"替换下方的sequence1
SELECT cache_value AS cache_size FROM sequence1;

执行后返回的结果就是你创建序列时CACHE参数设置的值,你的示例场景下返回结果为1。

除缓存大小外,你还可以通过直接查询序列获取以下配置:

  • last_value:序列当前已生成的最新值
  • increment_by:序列步长
  • max_value:序列允许的最大值
  • min_value:序列允许的最小值
  • is_cycled:序列是否开启循环(达到最值后重置)
  • is_called:序列是否已被调用过

批量查询所有序列的缓存值

如果需要一次性查询库中所有用户序列的缓存配置,可以通过系统目录pg_class筛选序列类型对象,配合query_to_xml批量拉取属性,示例语句如下:

SELECT
  n.nspname AS sequence_schema,
  c.relname AS sequence_name,
  (xpath('/row/cache_value/text()', query_to_xml(format('SELECT cache_value FROM %I.%I', n.nspname, c.relname), true, false, '')))[1]::integer AS cache_size
FROM pg_class c
JOIN pg_namespace n ON c.relnamespace = n.oid
WHERE c.relkind = 'S'
  AND n.nspname NOT IN ('pg_catalog', 'information_schema');

注意:执行上述批量查询语句的账号,需要拥有目标序列的SELECT权限,否则会抛出权限不足错误。

内容的提问来源于stack exchange,提问作者user13746660

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 20:45:31