PERCALL_COST (C)

使用 PERCALL_COST 修饰符指定每次执行 C 语言 UDR 导致的近似的 CPU 使用成本。

优化程序使用指定的成本来确定评估 UDR 中 SQL 谓词的顺序以获得最佳性能。例如,下面的查询有两个谓词,由逻辑 AND 连接:
SELECT * FROM tab1 WHERE func1() = 10 AND func2() = 'abc';

在此示例中,如果一个谓词返回 FALSE,则优化程序就不需要评估另一个谓词了。

优化程序使用指定的成本来排列谓词的顺序,以便成本最小的谓词可以最先评估。CPU 使用成本必须是在 1231-1 之间的整数,1 是最低成本,231-1 是最高成本。

要计算每次调用的近似成本,把下面两个数字相加:
  • 每次调用 C UDR 执行代码的行数
  • 需要一次 I/O 访问的谓词数

一次执行的缺省成本是 0。当删除 PERCALL_COST 修饰符时,一次执行的成本回到 0