---
title: "ob_udf_selectivity - OceanBase 数据库 V5.0.1 | OceanBase 文档中心"
description: ob_udf_selectivity 说明 该变量从 V5.0.1 版本开始引入。 功能描述 ob_udf_selectivity 用于设置 UDF 等值谓词的默认选择率。 优化器在对包含 UDF 谓词的查询进行代价估算时，会使用该变量作为 UDF 等值谓词（如 udf(col) = 1 ）的默认选择率，参与谓词重排…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 5.0.1

# ob_udf_selectivity

更新时间：2026-08-11 17:01:37

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V5.0.1/zh-CN/700.reference/800.configuration-items-and-system-variables/200.system-variable/300.global-system-variable/9720.ob_udf_selectivity-global.md)

#### 说明

该变量从 V5.0.1 版本开始引入。

## 功能描述

`ob_udf_selectivity` 用于设置 UDF 等值谓词的默认选择率。

优化器在对包含 UDF 谓词的查询进行代价估算时，会使用该变量作为 UDF 等值谓词（如 `udf(col) = 1`）的默认选择率，参与谓词重排序（predicate reorder）的计算。用户可以根据 UDF 的实际过滤效果调整该值，以影响优化器对谓词执行顺序的决策。

## 权限要求

- 查询变量

     - Global 级别

      `sys` 租户和所有用户租户均可以使用 `SHOW VARIABLES` 语句或视图 `SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE`（Oracle 模式）及视图 `information_schema.GLOBAL_VARIABLES`（MySQL 模式）查看 Global 系统变量的值。
     - Session 级别

      `sys` 租户和所有用户租户均可以使用 `SHOW VARIABLES` 语句或视图 `SYS.TENANT_VIRTUAL_SESSION_VARIABLE`（Oracle 模式）及视图 `information_schema.SESSION_VARIABLES`（MySQL 模式）查看 Session 系统变量的值。
 - 修改变量

     - Global 生效

           - `sys` 租户可以直接修改 Global 系统变量的值。
           - MySQL 用户租户需要拥有 `SUPER` 或 `ALTER SYSTEM` 权限才能修改 Global 系统变量的值。
           - Oracle 用户租户需要拥有 `ALTER SYSTEM` 权限才能修改 Global 系统变量的值。
     - Session 生效

      `sys` 租户和所有用户租户均可以直接修改本租户的 Session 系统变量的值。

## 属性说明

| **属性** | **描述** |
| --- | --- |
| 参数类型 | numeric |
| 默认值 | 0.005 |
| 取值范围 | [0.0, 1.0] |
| 生效范围 | - Global - Session |
| 是否影响计划 | 是，该变量带有 `INFLUENCE_PLAN` 标记，变量值变化时会触发计划淘汰。 |
| 是否可修改 | 是，支持通过 `SET` 或 `ALTER SESSION SET` 语句修改。 |

## 使用说明

`ob_udf_selectivity` 和 `ob_udf_cost_factor` 共同决定 UDF 谓词在谓词重排序中的 rank 值。优化器的目标是将 rank 更小的谓词排在前面执行：

- rank 计算公式近似为 `(selectivity - 1) / cost_factor`。
 - `ob_udf_selectivity` 影响 selectivity 项：值越小表示 UDF 过滤能力越强（保留更少行数），rank 越小，UDF 越倾向于在前面执行。
 - `ob_udf_cost_factor` 影响 cost 项：值越大表示 UDF 单行处理代价越高，rank 越大（越接近 0），UDF 越倾向于在后面执行。

一般情况下使用默认值即可，当对 UDF 的实际过滤能力有明确的预期时，可调整该变量。

## 配置示例

设置 UDF 等值谓词的选择率为 0.999（Session 级别生效）。

```shell
obclient> SET ob_udf_selectivity = 0.999;

```

设置 UDF 等值谓词的选择率为 0.999（Global 级别生效）。

```shell
obclient> SET GLOBAL ob_udf_selectivity = 0.999;

```

## 相关文档

- [ob_udf_cost_factor](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006738997)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
