【YashanDB 知识库】崖山有哪些内存参数,Share Pool 各个参数之间有什么关系

简介: 在使用YashanDB时,用户常对内存参数配置有疑问,尤其是23.2及以上版本中,如SQL_POOL_SIZE+DICTIONARY_CACHE_SIZE超100报错,影响跑批性能。主要内存参数包括SHARE_POOL_SIZE、SQL_POOL_SIZE、DICTIONARY_CACHE_SIZE等,需合理配置以优化性能。SHARE POOL内含多个POOL,可动态调整。具体配置方法及观察使用情况的方式详见官网文档。

问题现象
Oracle 一般只需要配置 SGA/PGA,SGA 内存会自动做分配,在崖山有比较多的内存配置参数,可以根据需要做详细的配置控制。具有有哪些主要参数,功能是什么呢,用户常有这种疑问。

在用户使用 YashanDB 的时候,开始的时候就会对内存的参数做一些配置调优,在另一篇文章《要有好的跑批性能,有哪些参数要注意》也介绍到如何合理配置各项参数,其中也涉及较多内存参数的配置。

但是用户实际使用的过程,陆续反馈了一些参数配置之后报错,例如 SQL_POOL_SIZE+DICTIONARY_CACHE_SIZE 配置大于 100 报错

问题的风险及影响
影响跑批性能

问题影响的版本
YashanDB 版本:23.2 及以上所有版本

解决方法及规避方式
崖山各项内存空间参数

可以参考下图:

13.jpeg

上图中除了共享区域,其他各个配置均有对应的参数、观察使用情况的方法,可以在官网中找到详细的说明 配置参数 | YashanDB Doc,有了观察实际使用情况的方法后,可以根据实际情况做调整。

而共享区域的配置则相对复杂一点,可以参考下一章节。

Share Pool 内部构成及相互关系

在 Oracle 中,SGA 是全局共享内存区域,其内部也有很详细的各种池子,各个池子之间可以自动调节。

YashanDB 的实现也有些类似,在 Share Pool 内存在多个 POOL,如 SQL POOL,DC POOL,LOCK_POOL,CURSOR_POOL 等,

14.jpeg

为了方面用户使用,设计 SHARE POOL 统一参数,用户一般只需配置 SHARE_POOL_SIZE 参数即可,SHARE POOL 内存可在 SQL POOL、DC POOL 之间动态调整:SQL_POOL、DC_POOL、SHARE_POOL 以 MemoryPool 管理,以 MemoryPool 管理的 POOL 出现内存不足时,可以从 SHARE MEMORY POOL 申请内存。

为了方便高阶用户进一步调整,每个 POOL 存在对应的配置参数限制控制其大小,存在如下限制:

● SQL_POOL_SIZE、DICTIONARY_CACHE_SIZE 表示占用 share pool 大小的百分比,两者总和不能超过 100

● LOCK_POOL_SIZE 和 CURSOR_POOL_SIZE 表示占用内存大小

● SQL_POOL_SIZE、DICTIONARY_CACHE_SIZE 参数范围为[1, 99]的整数,默认值分别为 50,25.

● SHARE_POOL_SIZE 参数范围为[160MB, 64TB],默认值为 256M, 生效方式为重启生效

● CURSOR_POOL_SIZE 默认值为 32M

相关文章
|
Oracle 关系型数据库 Java
【YashanDB知识库】Mybatis-Plus适配崖山配置
【YashanDB知识库】Mybatis-Plus适配崖山配置
【YashanDB知识库】手工迁移Doris数据到崖山分布式
【YashanDB知识库】手工迁移Doris数据到崖山分布式
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
SQL DataX HIVE
【YashanDB知识库】DataX迁移Hive到崖山分布式
本文来自YashanDB官网,介绍通过DataX将Hive数据迁移到YashanDB的实现方法。源环境为Hive 3.1.3,目标为YashanDB 23.2.3.100。文章提供了Hive与YashanDB的建表脚本、数据类型映射及DataX配置示例,包含reader和writer插件参数设置,并通过`datax.py`执行同步任务。内容详尽展示了数据迁移的全流程。
【YashanDB知识库】DataX迁移Hive到崖山分布式
|
Oracle 关系型数据库 Java
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
本文介绍通过Flink CDC实现Oracle数据实时同步至崖山数据库(YashanDB)的方法,支持全量与增量同步,并涵盖新增、修改和删除的DML操作。内容包括环境准备(如JDK、Flink版本等)、Oracle日志归档启用、用户权限配置、增量日志记录设置、元数据迁移、Flink安装与配置、生成Flink SQL文件、Streampark部署,以及创建和启动实时同步任务的具体步骤。适合需要跨数据库实时同步方案的技术人员参考。
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
|
调度 数据库 Python
【YashanDB 知识库】DolphinScheduler 适配崖山 Python 驱动
本文来自YashanDB官网,介绍如何将DolphinScheduler调度器适配崖山Python驱动,实现通过Python任务访问崖山数据库。环境要求包括DolphinScheduler 3.1.9、Python 3.9及YashanDB 23.2.2.100。操作步骤涵盖安装YashanDB客户端、配置环境变量、安装Python驱动以及设置DolphinScheduler相关参数,助力用户高效集成与使用。
|
SQL 存储 缓存
YashanDB内存体系
YashanDB内存体系
|
Java 数据库连接
【YashanDB知识库】Springboot启动找不到崖山jdbc驱动的问题处理
本文来自YashanDB官网,主要解决SpringBoot应用启动时出现“找不到崖山JDBC驱动”的问题,尽管lib目录下已有yashandb-jdbc-1.6.9.jar文件。错误信息显示`java.lang.ClassNotFoundException: com.yashandb.jdbc.Driver`。解决方案为:通过`which java`等命令定位Java安装路径,将驱动jar包复制到JRE的`lib/ext`目录下,最后重启应用即可。
|
SQL 存储 关系型数据库
【YashanDB知识库】如何从内存中获取SQL语句的执行计划
【YashanDB知识库】如何从内存中获取SQL语句的执行计划
|
Java 数据库连接 Maven
【YashanDB知识库】私有maven使用崖山JDBC驱动
本文介绍如何将YashanDB的JDBC驱动包(yashandb-jdbc-1.5.1.jar)安装到Maven本地仓库。通过使用`mvn install:install-file`命令,指定参数如`-Dfile`(jar路径)、`-DgroupId`、`-DartifactId`和`-Dversion`等,可完成打包。之后,在项目中只需在`pom.xml`中添加对应依赖即可使用该驱动,方便集成与管理。