---
title: OceanBase 数据库中快速参数化的含义 -OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库中快速参数化的含义 相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库中快速参数化的含义 的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OceanBase 数据库中快速参数化的含义

更新时间：2025-03-06 07:36

适用版本： V2.1.x、V2.2.x 内容类型：TechNote  

快速参数化是 OceanBase 数据库中 SQL 语句执行流程在优化器中特有的优化行为。本文介绍快速参数化的实现以及使用。

## 适用版本

OceanBase 数据库 V2.X 版本

## 基本功能

快速参数化是 OceanBase 数据库中，SQL 语句执行流程在优化器中特有的优化行为。 其特征为：

- 默认使用词法分析对文本串直接参数化后，作为计划缓存的键值。基于快速参数化的执行计划缓存可以省去语法分析过程，并且在查找 Hash Map 时，对参数化后语法树的 Hash 和比较操作可替换为对文本串进行 Hash 和 Memcmp 操作，效率更高。
 - 对于明确列出的不能快速参数化与暂不支持计划缓存的场景则使用语法或词法解析（即 normal parse）得到带约束条件的执行计划作为 Plan Cache 的键值。

  OceanBase 数据库中，以下场景中的常量均不能参数化：

     - 所有 ORDER BY 后常量。例如 `ORDER BY 1,2;`。
     - 所有 GROUP BY 后常量。例如 `GROUP BY 1,2;`。
     - LIMIT 后常量。例如 `LIMIT 5;`。
     - 作为格式串的字符串常量，例如 `SELECT DATE_FORMAT('2006-06-00', '%d');` 中的 `%d`。
     - 函数输入参数中，影响函数结果并最终影响执行计划的常量。例如 `CAST(999.88 as NUMBER(2,1))` 中的 `NUMBER(2,1)`，或者 `SUBSTR('abcd', 1, 2)` 中的 `1, 2`。
     - 函数输入参数中，带有隐含信息并最终影响执行计划的常量。例如 `SELECT UNIX_TIMESTAMP('2015-11-13 10:20:19.012');` 中的 `2015-11-13 10:20:19.012`，指定输入时间戳的同时，隐含指定了函数处理的精度值为毫秒。

  快速参数化的流程示意图如下所示。

  ![fastparameter](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/1943556161/p254198.jpeg)

## 注意事项

- OceanBase 数据库中快速参数化的逻辑是基于完备的匹配规则的，而规则的梳理需要时间完善（例如 LIKE 语句精确匹配、临时表、ACS、分布式场景下的数据分布情况、数据类型匹配、环境变量信息匹配等）。
 - 以下语句可能会影响快速参数化的性能：

     - `SIMILAR` 语句出现空格形式（空格、制表符、换行符等）或文本值。这是由于OceanBase 数据库没有 `force_matching_signature` 机制。以上形成的 `sql_id` 在 outline 按照 `sql_id` 绑定时存在问题。
     - 大于 200 条的 `IN` 列表。
     - 大型的 `CASE WHEN ... THEN` 语句。

      可以通过查询 `v$plan_cache_stat` 与 `v$plan_cache_plan_stat` 视图查询执行计划缓存的命中情况。

           - `v$plan_cache_stat` 用于查询当前租户在所有 Server 上的每个计划缓存整体的状态。
           - `v$plan_cache_plan_stat` 用于查询当前租户在当前 Server 上的计划缓存中缓存的每一个缓存对象的状态。

Previous

[DAS（data access service）简介](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217873)

Next

[SQL 中表含 enum 列导致 LEFT JOIN 未 rewrite 为 JOIN](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000706751) ![有帮助](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) 咨询热线
