---
title: OceanBase 数据库 V4.x 版本中性能调优参数-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 OceanBase 数据库 V4.x 版本中性能调优参数相关的常见问题和使用技巧，帮助您快速解决 OceanBase 数据库 V4.x 版本中性能调优参数的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OceanBase 数据库 V4.x 版本中性能调优参数

更新时间：2026-05-18 01:51

适用版本： V4.0.x、V4.1.x、V4.2.x、V4.3.x 内容类型：TechNote  

本文介绍 OceanBase 数据库 V4.x 性能调优参数。 不同的测试（功能测试/性能测试/压力测试等）以及 OLTP/OLAP/HTAP 等不同场景下，需要修改的参数/变量有所不同。 由于与性能相关的参数和变量较多，为方便操作，一般优化对性能影响较大的参数即可。 以下为各步骤简介，以便于更直观地理解。

| 步骤名称 | 步骤简介 | 功能测试/适配测试 | 性能测试/压力测试/POC 测试 |
| --- | --- | --- | --- |
| 第一步 功能参数调优 | 优化一般功能测试参数 | 需要 | 需要 |
| 第二步 性能参数基础调优 | 优化对性能影响较大的参数 | 不需要 | 需要 |
| 第三步 性能参数精简调优 | 关闭不必要的信息收集 | 不需要 | 需要 (全部调优完成后) |
| 第四步 性能参数极致调优 | 优化性能相关的大部分参数 | 不需要 | 可选 |
| 第五步 恢复参数值 | 避免不必要的问题 | 不需要 | **必须** |

除特别注明外，一般都适用于 OceanBase 数据库 V4.2.1 LTS/V4.2.5 LTS 和 OceanBase 数据库 V4.3.5 LTS。 此文档**仅限测试环境**（如性能测试、压力测试、POC 测试等环境）使用，生产环境参数设置请咨询 OceanBase 数据库技术支持团队人员。 **建议通过 OCP 修改所有参数（首次修改隐藏参数除外），以保留完整的参数修改历史记录，以便后续排查问题**。 性能测试/压力测试等完成后，**需要根据第五步恢复参数值**，以避免不必要的问题。

## 详细说明

### 数据库连接串示例

由于修改 OBProxy 参数、集群参数和租户参数数据库连接串不同，特提供以下数据库连接串示例供参考。

- 修改 OBProxy 参数数据库连接串示例。

  （推荐）修改 OBProxy 参数数据库连接串示例如下，通过 `root@sys`（即连接 sys 租户）连接，本文正文中以此连接串作为示例。

  ```shell
  # 连接串一 (sys 租户数据库连接串，推荐)
  mysql -h10.10.20.20 -P2883 -uroot@sys#obcluster -Doceanbase -pxxx

  ```

  也可以使用 OBProxy 专用连接串，通过 `root@proxysys` 连接。

  ```shell
  # OBProxy 专用连接串 (推荐使用连接串一)
  mysql -h10.10.20.20 -P2883 -uroot@proxysys#obcluster -Doceanbase -pxxx

  ```
 - 修改 OBServer 集群参数数据库连接串示例。

  通过 `root@sys`（即连接 sys 租户）连接。

  ```shell
  # 连接串一 (sys 租户数据库连接串)
  mysql -h10.10.20.20 -P2883 -uroot@sys#obcluster -Doceanbase -pxxx

  ```
 - 修改 OceanBase 数据库 MySQL 租户（用户租户）OBServer 参数数据库连接串示例。

  ```shell
  # 连接串二（MySQL 租户数据库连接串）
  mysql -h10.10.20.20 -P2883 -uroot@obmysql#obcluster -pxxx

  ```
 - 修改 OceanBase 数据库 Oracle 租户（用户租户）OBServer 参数数据库连接串示例。

  ```shell
  # 连接串三（Oracle 租户数据库连接串）
  obclient -h10.10.20.20 -P2883 -uSYS@oboracle#obcluster -pxxx

  ```

### 参数和变量相关权限

- MySQL 租户。

  管理员用户 (root) 已有相关权限。 普通用户（以用户名为 alvin 为例）设置/查询参数和变量需要如下权限：

  ```shell
  GRANT SELECT ON oceanbase.* to alvin;
  GRANT ALTER SYSTEM ON *.* TO 'alvin'@'%';

  ```

  或

  ```shell
  GRANT SUPER ON *.* TO 'alvin'@'%';

  ```
 - Oracle 租户。

  管理员用户（SYS）已有相关权限。 普通用户 (以用户名为 ALVIN 为例) 设置/查询参数和变量需要如下权限：

  ```shell
  GRANT SELECT ANY DICTIONARY TO ALVIN;
  GRANT ALTER SYSTEM TO ALVIN;

  ```

  或

  ```shell
  GRANT DBA TO ALVIN;

  ```

### 查询参数和变量

在操作前建议查询当前参数值后备份，以便于后续恢复参数和变量或定位问题。 相关视图详情可参见：[OceanBase 数据库各个版本中参数和变量相关的系统视图](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001048086?back=kb)。

#### 查询参数 SQL

OceanBase 数据库 V4.x 可通过如下 SQL 查询，MySQL 租户在 OceanBase 数据库下查询，Oracle 租户可在任意用户下查询。

```shell
SELECT scope,tenant_id,name,value,section,default_value,isdefault,edit_level,count(1) zones FROM gv$ob_parameters WHERE name IN ('bf_cache_priority','_bloom_filter_ratio','default_auto_increment_mode','default_load_mode','default_table_merge_engine','default_table_organization','default_table_store_format','direct_load_allow_fallback','enable_async_syslog','enable_cgroup','_enable_defensive_check','enable_early_lock_release','_enable_filter_reordering','enable_monotonic_weak_read','_enable_newsort','enable_record_trace_log','enable_syslog_recycle','freeze_trigger_percentage','_io_callback_thread_count','_io_read_batch_size','_io_read_redundant_limit_percentage','large_query_threshold','_lcl_op_interval','log_transport_compress_all','max_syslog_file_count','memory_chunk_cache_size','memory_limit_percentage','memstore_limit_percentage','micro_block_merge_verify_level','minor_compact_trigger','_nested_loop_join_enabled','ob_compaction_schedule_interval','ob_enable_batched_multi_statement','open_cursors','syslog_io_bandwidth_limit','_trace_control_info','trace_log_slow_query_watermark','use_large_pages','user_block_cache_priority','weak_read_version_refresh_interval','writing_throttling_trigger_percentage') GROUP BY scope,tenant_id,name,value,section,edit_level,isdefault,default_value ORDER BY isdefault,tenant_id,name;

```

#### 查询变量 SQL

##### 查询变量方式一：MySQL 租户和 Oracle 租户统一标准视图

OceanBase 数据库 V4.2.2+/V4.3.1+ 可通过如下 SQL 查询，MySQL 租户在 OceanBase 数据库下查询，Oracle 租户可在任意用户下查询。

```shell
-- OceanBase 数据库 V4.2.2+/V4.3.1+ MySQL 租户/Oracle 租户全局变量
SELECT name,value,scope,default_value,isdefault from dba_ob_sys_variables WHERE name in ('binlog_row_image','max_allowed_packet','ob_query_timeout','ob_sql_work_area_percentage','ob_trx_idle_timeout','ob_trx_timeout','parallel_degree_limit','parallel_degree_policy','parallel_min_scan_time_threshold','parallel_servers_target') ORDER BY isdefault,name;

```

##### 查询变量方式二：MySQL 租户专用视图或 Oracle 租户专用视图

OceanBase 数据库 V4.x MySQL 租户可通过如下方式查询。

```shell
-- OceanBase 数据库 V4.x MySQL 租户全局变量
SELECT variable_name,variable_value from information_schema.global_variables WHERE variable_name in ('binlog_row_image','max_allowed_packet','ob_query_timeout','ob_sql_work_area_percentage','ob_trx_idle_timeout','ob_trx_timeout','parallel_degree_limit','parallel_degree_policy','parallel_min_scan_time_threshold','parallel_servers_target') ORDER BY variable_name;

```

OceanBase 数据库 V4.x Oracle 租户可通过如下方式查询。

```shell
-- OceanBase 数据库 V4.x Oracle 租户全局变量
SELECT variable_name,value from sys.tenant_virtual_global_variable WHERE variable_name in ('binlog_row_image','max_allowed_packet','ob_query_timeout','ob_sql_work_area_percentage','ob_trx_idle_timeout','ob_trx_timeout','parallel_degree_limit','parallel_degree_policy','parallel_min_scan_time_threshold','parallel_servers_target') ORDER BY variable_name;

```

### 第一步：功能参数调优

适用于功能测试、性能测试和压力测试等场景。 **此步骤主要优化确保一般功能测试或适配测试能正常进行的参数**。 功能测试仅设置此步骤参数即可。

#### OBServer 参数调优

##### 用户租户参数和变量

**提示：使用上述连接串二或三修改用户租户参数和变量**。

OceanBase 数据库 V4.x 通用集群调优参数和变量：

```shell
-- 设置 SQL 工作区内存占整个租户内存百分比, 默认值 5
SET GLOBAL ob_sql_work_area_percentage=10;
-- 设置最大网络包的大小, 默认值 16777216 (16KB), 单位为 Byte
SET GLOBAL max_allowed_packet=67108864;
-- 设置 SQL 最大执行时间, 默认值 10000000 (10s), 单位为微秒
SET GLOBAL ob_query_timeout=3600000000;
-- 设置事务超时时间, 默认值 86400000000 (24h), 单位为微秒
SET GLOBAL ob_trx_timeout=86400000000;
-- 设置事务空闲超时时间, 默认值 86400000000 (24h), 单位为微秒
SET GLOBAL ob_trx_idle_timeout = 86400000000;
-- 单个 Session 可以同时打开的游标数量, 默认值 50
ALTER SYSTEM SET open_cursors=1500;
-- 是否启用批处理多条语句的功能, 默认值 false
ALTER SYSTEM SET ob_enable_batched_multi_statement=true;

```

**注意：全局 (GLOBAL) 变量设置后，对于新数据库连接生效**。

### 第二步：性能参数基础调优

**适配场景：性能测试/压力测试中需要排查或优化 Top SQL/Slow SQL、发现并解决测试过程中遇到的问题等**。 **此步骤主要优化对性能影响较大的参数**。 如 OceanBase 数据库版本为 V4.3.x 且使用 OCP V4.3.x，建议使用 OCP 参数模板功能，在创建集群和租户页面选择"负载类型"后将自动选择相应的参数模板，从而基于不同的场景设置不同的参数，以满足不同负载场景的性能和功能需求，详情参见：[配置最佳实践](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012735)。

对于 OceanBase 数据库 V4.3.x，本文主要考虑如下四种场景：

- Express OLTP：适用于贸易、支付核心系统、互联网高吞吐量应用程序等工作负载，无外键约束、无存储过程、无长事务、无大事务。
 - Complex OLTP：适用于银行、保险系统等工作负载。它们通常具有复杂的联接、复杂的相关子章询、用 PL 编写的批处理作业，以及长事务。
 - HTAP：适用于混合 OLAP 和 OLTP 工作负载。通常用于从活动运营数据、欺诈检测和个性化建议中获取即时见解。
 - OLAP：适用于实时数据仓库分析场景。

#### OBProxy 参数调优

**提示：推荐使用上述连接串一修改 OBProxy 参数**。 主要 OBProxy 参数调优如下：

```shell
-- 设置 OBProxy 运行时内存上限, 默认值 2G
ALTER PROXYCONFIG SET proxy_mem_limited='4G';
-- 控制是否开启压缩协议，默认值 true
ALTER PROXYCONFIG SET enable_compression_protocol=false;

```

#### OBServer 参数调优

##### 集群参数调优

**提示：使用上述连接串一修改集群参数**。 OceanBase 数据库版本 V4.x 通用集群调优参数：

```shell
-- 设置 OBServer 总可用内存大小占总内存大小的百分比, 默认值 80
ALTER SYSTEM SET memory_limit_percentage = 90;
-- MemStore 占租户的内存比, 默认值 50/0
ALTER SYSTEM SET memstore_limit_percentage = 60;
-- 控制 OBServer 节点是否开启 cgroup 功能, 默认值 true
ALTER SYSTEM SET enable_cgroup = false;
-- 是否启用防御性检查, 默认值 1
ALTER SYSTEM SET _enable_defensive_check = 0;
-- 是否启用 sort 算子优化, 默认值 true
ALTER SYSTEM SET _enable_newsort = false;

```

OceanBase 数据库 V4.x 通用集群调优参数（OceanBase 数据库 V4.3.x 建议通过 OCP 参数模板自动设置）：

```shell
-- 设置是否记录追踪日志, 默认值 true
ALTER SYSTEM SET enable_record_trace_log = false;
-- 设置查询的执行时间阈值，如果查询的执行时间超过该阈值，则被认为是慢查询，慢查询的追踪日志会被打印到系统日志中, 默认值 1s
ALTER SYSTEM SET trace_log_slow_query_watermark = '10s';
-- 一个查询执行时间超过该阈值会被判断为大查询，执行大查询调度策略, 默认值 5s
ALTER SYSTEM SET large_query_threshold = '5s';
-- 开启系统日志回收, 默认值 false
ALTER SYSTEM SET enable_syslog_recycle = true;
-- 设置在回收日志文件之前可以容纳的日志文件数量, 默认值 0，表示不会删除任何日志文件
ALTER SYSTEM SET max_syslog_file_count = 300;

```

OceanBase 数据库 V4.x **Complex OLTP/HTAP 场景**需要设置（OceanBase 数据库 V4.3.x 建议通过 **OCP 参数模板**自动设置）：

```shell
-- 一个查询执行时间超过该阈值会被判断为大查询，执行大查询调度策略, 默认值 5s
ALTER SYSTEM SET large_query_threshold = '600s';

```

OceanBase 数据库 V4.3.x **OLAP 场景**需要设置（建议通过 **OCP 参数模板**自动设置）：

```shell
-- 设置查询的执行时间阈值，如果查询的执行时间超过该阈值，则被认为是慢查询，慢查询的追踪日志会被打印到系统日志中, 默认值 1s
ALTER SYSTEM SET trace_log_slow_query_watermark = '7d';
-- 一个查询执行时间超过该阈值会被判断为大查询，执行大查询调度策略, 默认值 5s
ALTER SYSTEM SET large_query_threshold = '0ms';

```

##### 用户租户参数和变量

**提示：使用上述连接串二或三修改用户租户参数和变量**。 OceanBase 数据库 V4.x 通用租户调优参数：

```shell
-- 设置 SQL 工作区内存占整个租户内存百分比, 默认值 5
SET GLOBAL ob_sql_work_area_percentage = 20;
-- 关闭全链路诊断功能
CALL dbms_monitor.ob_tenant_trace_disable();

```

**注意：全局（GLOBAL）变量设置后，对于新数据库连接生效**。

OceanBase 数据库 V4.3.x **OLAP 场景**需要设置 Auto DOP 相关参数：

```shell
-- 设置并行度选择策略，取值有 MANUAL(0) 和 AUTO(1), 默认值 MANUAL
SET GLOBAL parallel_degree_policy = AUTO;
-- 在 Auto DOP 策略中用于计算并行度的参数，即设置对基表扫描进行并行处理的最小评估执行时间, 默认值 1000,单位为 ms
SET GLOBAL parallel_min_scan_time_threshold = 10;

-- 租户 CPU 充足 (如 >= 64) 时，可以考虑调大如下两个参数
-- 设置每个 Server 上的并行查询排队条件, 默认值 0
-- 建议租户 CPU 的 10 倍, 如下以租户为 100 CPU 为例
SET GLOBAL parallel_servers_target=1000;
-- 设置在使用 Auto DOP 策略时，优化器选择并行度的上限值, 默认值 0, 表示对并行度不进行限制
-- 建议不超过租户 CPU 的 1/3, 如下以租户为 96 CPU 为例
SET GLOBAL parallel_degree_limit=32;

```

**注意：全局（GLOBAL）变量设置后，对于新数据库连接生效**。 OceanBase 数据库 V4.x 通用租户调优参数（OceanBase 数据库 V4.3.x 建议通过 **OCP 参数模板**自动设置）：

```shell
-- 对日志传输是否使用压缩, 默认值 false
ALTER SYSTEM SET log_transport_compress_all = true;

```

如是 OceanBase 数据库 V4.3.5 Express OLTP/Complex OLTP 场景，需要设置（建议通过 OCP 参数模板自动设置）：

  ```shell
  -- 控制存储层是否启用 filter 的重排序功能, 默认值 true
  ALTER SYSTEM SET _enable_filter_reordering = false;

  ```shell
  -- 控制存储层是否启用 filter 的重排序功能, 默认值 true
  ALTER SYSTEM SET "_enable_filter_reordering" = false;

  ```

OceanBase 数据库 V4.3.x OLAP 场景需要设置（建议通过 **OCP 参数模板**自动设置）：

  ```shell
  -- 对日志传输是否使用压缩, 默认值 false
  ALTER SYSTEM SET log_transport_compress_all = false;
  -- 指定用户租户默认创建表的格式, 默认值 row
  ALTER SYSTEM SET default_table_store_format = 'column';
  -- 在导数操作场景中，控制数据的导入方式, 默认值 DISABLED
  ALTER SYSTEM SET default_load_mode = 'FULL_DIRECT_WRITE';
  -- 控制在指定旁路导入的导数操作中，如果遇到旁路导入不支持的场景时，导数操作是否回退为普通导入的方式, 默认值 true
  ALTER SYSTEM SET direct_load_allow_fallback = false;
  -- 设置创建新表时默认的表组织模式, 默认值 INDEX
  ALTER SYSTEM SET default_table_organization = 'HEAP';
  -- 一次读 IO 请求读取数据块大小的上限, 默认值 0K
  ALTER SYSTEM SET _io_read_batch_size = '128K';
  -- 一次 IO 读请求中读取冗余数据块所占百分比上限, 默认值 0
  ALTER SYSTEM SET _io_read_redundant_limit_percentage = 50;
  -- 控制是否启用 nested loop join, 默认值 true
  ALTER SYSTEM SET _nested_loop_join_enabled = false;
   -- OceanBase 数据库 V4.3.5.2+
  -- 控制 IO callback 线程的数量, 默认值 0, 表示自动根据内存规格分配
  ALTER SYSTEM SET _io_callback_thread_count = 64;
  -- OceanBase 数据库 V4.3.5.3+
  -- 指定用户租户默认创建表的 merge_engine, 默认值 partial_update
  ALTER SYSTEM SET default_table_merge_engine = 'delete_insert';
  -- 在保证正确性的前提下，尽量将子查询全部改写成连接形态, 默认值 false
  ALTER SYSTEM SET _force_subquery_unnest = true;

  ```shell
  -- 对日志传输是否使用压缩, 默认值 false
  ALTER SYSTEM SET log_transport_compress_all = false;
  -- 指定用户租户默认创建表的格式, 默认值 row
  ALTER SYSTEM SET default_table_store_format = 'column';
  -- 在导数操作场景中，控制数据的导入方式, 默认值 DISABLED
  ALTER SYSTEM SET default_load_mode = 'FULL_DIRECT_WRITE';
  -- 控制在指定旁路导入的导数操作中，如果遇到旁路导入不支持的场景时，导数操作是否回退为普通导入的方式, 默认值 true
  ALTER SYSTEM SET direct_load_allow_fallback = false;
  -- 设置创建新表时默认的表组织模式, 默认值 INDEX
  ALTER SYSTEM SET default_table_organization = 'HEAP';
  -- 一次读 IO 请求读取数据块大小的上限, 默认值 0K
  ALTER SYSTEM SET "_io_read_batch_size" = '128K';
  -- 一次 IO 读请求中读取冗余数据块所占百分比上限, 默认值 0
  ALTER SYSTEM SET "_io_read_redundant_limit_percentage" = 50;
  -- 控制是否启用 nested loop join, 默认值 true
  ALTER SYSTEM SET "_nested_loop_join_enabled" = false;
  -- OceanBase 数据库 V4.3.5.2+
  -- 控制 IO callback 线程的数量, 默认值 0, 表示自动根据内存规格分配
  ALTER SYSTEM SET "_io_callback_thread_count" = 64;
  -- OceanBase 数据库 V4.3.5.3+
  -- 指定用户租户默认创建表的 merge_engine, 默认值 partial_update
  ALTER SYSTEM SET default_table_merge_engine = 'delete_insert';
  -- 在保证正确性的前提下，尽量将子查询全部改写成连接形态, 默认值 false
  ALTER SYSTEM SET "_force_subquery_unnest" = true;

  ```

### 第三步：性能参数精简调优

**适配场景：所有 Top SQL/Slow SQL 等均已完成优化，所有遇到的问题均已解决，需要进行最终的性能测试/压力测试，跑出数据库最佳性能**。 **本步骤主要关闭不必要的信息收集**。

#### OBServer 参数调优

##### 集群参数调优

**提示：使用上述连接串一修改集群参数**。 POC 最终正式测试阶段，所有 SQL 均已调优。

```shell
-- 设置是否开启 SQL 审计功能, 默认值 true
ALTER SYSTEM SET enable_sql_audit=false;
SELECT sleep(5);
-- 设置是否开启性能事件的信息收集功能, 默认值 true
ALTER SYSTEM SET enable_perf_event=false;
-- 设置系统日志级别, 默认值 WDIAG
ALTER SYSTEM SET syslog_level='PERF';

```

**注意：此部分参数仅限性能测试/压力测试使用，`测试完参数需要全部改回去`，否则 SQL Audit 表将无新数据且影响 OCP Top SQL/Slow SQL 等信息收集**。

### 第四步：性能参数极致调优

**适配场景：所有 Top SQL/Slow SQL 等均已完成优化，所有遇到的问题均已解决，需要进行最终的性能测试/压力测试，跑出数据库最佳性能**。 主要优化对性能有影响的绝大部分参数。 **注意：此部分参数仅限性能测试/压力测试使用，测试完参数需要全部改回去以避免不必要的问题**。

#### OBProxy 参数调优

**提示：推荐使用上述连接串一修改 OBProxy 参数**。

```shell
-- 是否启用集群名称校验, 默认值 true
ALTER PROXYCONFIG SET enable_cluster_checkout=false;
 -- 是否开启压缩协议, 默认值 true
ALTER PROXYCONFIG SET enable_compression_protocol=false;
-- ODP 预执行请求执行时间阈值，超过阈值即打印一条告警日志, 默认值 2ms
ALTER PROXYCONFIG SET slow_proxy_process_time_threshold='500ms';
-- 不启用 Prometheus 监控, 默认值 true
ALTER PROXYCONFIG SET enable_prometheus=false;

```

如下 OBProxy 调优参数（默认参数值，一般不需要设置）：

```shell
-- 是否开启异步日志, 默认值 true
ALTER PROXYCONFIG SET enable_async_log=true;
-- 控制 ODP 是否能够进行 QoS, 默认值 False
ALTER PROXYCONFIG SET enable_qos=false;
-- 不访问 OCP 的 MetaDB
ALTER PROXYCONFIG SET enable_metadb_used=false;
-- 不校验 OS 内核
ALTER PROXYCONFIG SET enable_strict_kernel_release=false;
-- 根据 CPU 核数自动创建工作线程
ALTER PROXYCONFIG SET automatic_match_work_thread=true;
-- 开启 OceanBase 2.0 协议
ALTER PROXYCONFIG SET enable_ob_protocol_v2=true;

```

#### OBServer 参数调优

##### 集群参数调优

**提示：使用上述连接串一修改集群参数**。

```shell
-- 设置弱一致性读版本号的刷新周期, 默认值 100ms
ALTER SYSTEM SET weak_read_version_refresh_interval='2s';
-- 设置合并时宏块的校验级别, 0 表示关闭宏块校验, 默认值 2
ALTER SYSTEM SET micro_block_merge_verify_level=0;
-- 开启内存大页, 默认值 false
ALTER SYSTEM SET use_large_pages='true';
-- 设置数据块缓存在缓存系统中的优先级, 默认值 1
ALTER SYSTEM SET user_block_cache_priority=5;
-- 设置 Bloom Filter 缓存优先级, 默认值 1
ALTER SYSTEM SET bf_cache_priority = 10;
-- 关闭自动死锁检测, 默认值 30ms
ALTER SYSTEM SET _lcl_op_interval='0ms';

```

OceanBase 数据库 V4.x **通用场景（除 OLAP/HTAP 场景外）** 需要设置：

```shell
-- 为频繁空查的宏块建立 bloomfilter 并缓存，减少磁盘 IO 和 CPU 消耗，提升写入性能, 默认值 35/3
ALTER SYSTEM SET _bloom_filter_ratio = 35;

```

OceanBase 数据库 V4.3.x **OLAP/HTAP 场景**需要设置：

```shell
-- 为频繁空查的宏块建立 bloomfilter 并缓存，减少磁盘 IO 和 CPU 消耗，提升写入性能, 默认值 35/3
ALTER SYSTEM SET _bloom_filter_ratio = 3;

```

以下参数保持默认值即可，一般不需要设置：

```shell
-- 设置内存分配器缓存的内存块容量, 默认值 0M, 表示系统自适应
ALTER SYSTEM SET memory_chunk_cache_size ='0M';
-- 设置系统日志所能占用的磁盘 IO 带宽上限, 默认值 30MB
ALTER SYSTEM SET syslog_io_bandwidth_limit='30MB';
-- 启用系统日志异步写, 默认值 true
ALTER SYSTEM SET enable_async_syslog=true;

```

```shell
-- 配置触发转储（Minor Compaction）的 SSTable 个数的阈值, 默认值 2
ALTER SYSTEM SET minor_compact_trigger=5;
-- 设置默认的自增列自增模式, 默认值 ORDER
ALTER SYSTEM SET default_auto_increment_mode='NOORDER';
-- 设置 Compaction 调度的时间间隔, 默认值 120s
ALTER SYSTEM SET ob_compaction_schedule_interval='3s';
-- 设置写入速度的阈值, 默认值 60
ALTER SYSTEM SET writing_throttling_trigger_percentage=90;
-- 设置触发冻结的租户使用 MemStore 内存的阈值百分比, 默认值 20
ALTER SYSTEM SET freeze_trigger_percentage = 60;
-- 控制是否记录全列日志, 取值有 MINIMAL(0) 和 FULL(2), 默认值 FULL
SET GLOBAL binlog_row_image='MINIMAL';

```

**注意：全局 (GLOBAL) 变量设置后，对于新数据库连接生效**。 以下参数已为默认值，一般不需要修改：

```shell
-- 优化热点行场景, 开启提前解行锁的功能, 此默认值 (true) 即可
ALTER SYSTEM SET enable_early_lock_release=true;
-- 关闭单调读, 此默认值 (False) 即可
ALTER SYSTEM SET enable_monotonic_weak_read = false;

```

### 第五步：恢复参数值

性能测试/压力测试等完成后，**需要将以下参数或变量需要改回去**以避免不必要的问题。 本文章节 **第一步：功能参数调优** 一般不需要恢复，其中参数根据实际情况设置即可。

#### 恢复第二步参数

恢复 **第二步：性能参数基础调优** 以下集群参数，第二步中其他参数和变量根据需要调整即可。 **提示：使用上述连接串一修改集群参数**。

```shell
-- 控制 OBServer 节点是否开启 cgroup 功能, 默认值 true
ALTER SYSTEM SET enable_cgroup = false;
-- 是否启用防御性检查, 默认值 1
ALTER SYSTEM SET _enable_defensive_check = 1;
-- 是否启用 sort 算子优化, 默认值 true
ALTER SYSTEM SET _enable_newsort = true;

```

#### 恢复第三步参数

恢复 **第三步：性能参数精简调优** 以下集群参数，否则 SQL Audit 表将无新数据且影响 OCP Top SQL/Slow SQL 等信息收集。 **提示：使用上述连接串一修改集群参数**。

```shell
-- 设置是否开启 SQL 审计功能, 默认值 true
ALTER SYSTEM SET enable_sql_audit=true;
SELECT sleep(5);
-- 设置是否开启性能事件的信息收集功能, 默认值 true
ALTER SYSTEM SET enable_perf_event=true;
-- 设置系统日志级别, 默认值 WDIAG
ALTER SYSTEM SET syslog_level='WDIAG';

```

#### 恢复第四步参数

建议恢复 **第四步：性能参数极致调优** 参数和变量，以避免不必要的问题。

##### 恢复 OBProxy 参数

**提示：推荐使用上述连接串一修改 OBProxy 参数**。

```shell
-- 是否启用集群名称校验, 默认值 true
ALTER PROXYCONFIG SET enable_cluster_checkout=true;
 -- 是否开启压缩协议, 默认值 true
ALTER PROXYCONFIG SET enable_compression_protocol=true;
-- ODP 预执行请求执行时间阈值，超过阈值即打印一条告警日志, 默认值 2ms
ALTER PROXYCONFIG SET slow_proxy_process_time_threshold='2ms';
-- 不启用 Prometheus 监控, 默认值 true
ALTER PROXYCONFIG SET enable_prometheus=true;

```

##### 恢复集群参数

**提示：使用上述连接串一修改集群参数**。

```shell
-- 设置弱一致性读版本号的刷新周期, 默认值 100ms
ALTER SYSTEM SET weak_read_version_refresh_interval='100ms';
-- 设置合并时宏块的校验级别, 0 表示关闭宏块校验, 默认值 2
ALTER SYSTEM SET micro_block_merge_verify_level=2;
-- 开启内存大页, 默认值 false
ALTER SYSTEM SET use_large_pages='false';
-- 设置数据块缓存在缓存系统中的优先级, 默认值 1
ALTER SYSTEM SET user_block_cache_priority=1;
-- 设置 Bloom Filter 缓存优先级, 默认值 1
ALTER SYSTEM SET bf_cache_priority = 1;
-- 关闭自动死锁检测, 默认值 30ms
ALTER SYSTEM SET _lcl_op_interval='30ms';

```

##### 恢复用户租户参数和变量

**提示：使用上述连接串二或三修改用户租户参数和变量**。

```shell
-- 配置触发转储（Minor Compaction）的 SSTable 个数的阈值, 默认值 2
ALTER SYSTEM SET minor_compact_trigger=2;
-- 设置默认的自增列自增模式, 默认值 ORDER
ALTER SYSTEM SET default_auto_increment_mode='ORDER';
-- 设置 Compaction 调度的时间间隔, 默认值 120s
ALTER SYSTEM SET ob_compaction_schedule_interval='120s';
-- 设置触发冻结的租户使用 MemStore 内存的阈值百分比, 默认值 20
ALTER SYSTEM SET freeze_trigger_percentage = 20;
-- 设置写入速度的阈值, 默认值 60
ALTER SYSTEM SET writing_throttling_trigger_percentage=60;
-- 控制是否记录全列日志, 取值有 MINIMAL(0) 和 FULL(2), 默认值 FULL
SET GLOBAL binlog_row_image='FULL';

```

## 适用版本

OceanBase 数据库 V4.x 版本。

Previous

[OBProxy 内存中存放的执行计划与 OceanBase 数据库中 Plan Cache 存放的执行计划区别](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003039511)

Next

[如何查看当前的数据库与用户名](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000123) ![有帮助](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) 咨询热线
