JFMT

指定联接这些列中的表时如何调整 VARCHAR 列数据的大小并相应缓冲数据。JFMT 提示覆盖由配置参数 JoinDefaultTupleFormat 设置的默认行为,可在数据库和会话级别进行设置。

有关详细信息,请参阅联接可变长度字符串数据

语法

JOIN /*+JFMT(format-type)*/

参数

format‑type
指定联接这些列中的表时如何设置 VARCHAR 列数据的格式并相应缓冲数据。设置为以下值之一:
  • f (固定):使用联接列元数据将列数据的大小调整为固定长度,并相应地进行缓冲。

  • v (变量):使用联接列数据的实际长度,因此每个联接的缓冲区大小不同。

例如:

SELECT /*+SYNTACTIC_JOIN*/ s.store_region, SUM(e.vacation_days) TotalVacationDays
   FROM public.employee_dimension e
   JOIN /*+JFMT(f)*/ store.store_dimension s ON s.store_region=e.employee_region
   GROUP BY s.store_region ORDER BY TotalVacationDays;

要求

  • 包含 JFMT 提示的查询必须也包含 SYNTACTIC_JOIN 提示。否则,优化器会忽略 JFMT 提示并抛出一条警告。

  • 联接语法必须符合 ANSI SQL-92 联接约定。