Timescale Cloud:性能、扩展、企业级

自托管产品

MST

覆盖用于在超表的整数 `time` 列中设置当前时间的 `now()` 日期/时间函数。许多策略仅适用于特定年龄的 数据块。`integer_now_func` 决定每个数据块的年龄。

您设置为 `integer_now_func` 的函数没有参数。它必须是以下之一:

  • IMMUTABLE:当您每次执行查询而不是预准备查询时使用。`integer_now_func` 的值在计划生成之前计算。这会生成一个显著更小的计划,尤其是当您有大量数据块时。

  • STABLE:`integer_now_func` 在查询执行开始前进行评估。数据块剪枝 在运行时执行。这会生成正确的结果,但可能会增加规划时间。

`set_integer_now_func` 不适用于 `time` 列类型为 `TIMESTAMP`、`TIMESTAMPTZ` 或 `DATE` 的表。

名称类型描述
main_tableREGCLASS`integer_now_func` 使用的超表。
integer_now_funcREGPROC一个函数,返回 `main_table` 中 `time` 列每行设置的当前时间。
名称类型描述
replace_if_existsBOOLEAN设置为 `true` 可在您之前已设置自定义函数时覆盖 `integer_now_func`。默认为 `false`。

为具有 Unix 时间 时间列的超表设置整数 `now` 函数。

  • IMMUTABLE:当您每次执行查询时

    CREATE OR REPLACE FUNCTION unix_now_immutable() returns BIGINT LANGUAGE SQL IMMUTABLE as $$ SELECT extract (epoch from now())::BIGINT $$;
    SELECT set_integer_now_func('hypertable_name', 'unix_now_immutable');
  • STABLE:用于预准备语句

    CREATE OR REPLACE FUNCTION unix_now_stable() returns BIGINT LANGUAGE SQL STABLE AS $$ SELECT extract(epoch from now())::BIGINT $$;
    SELECT set_integer_now_func('hypertable_name', 'unix_now_stable');

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页面