达梦:内存相关参数
目录
- 28个相关参数
- 1. 内存池相关
- `MEMORY_POOL`
- `MEMORY_N_POOLS`
- `MEMORY_BAK_POOL`
- 2. 大缓冲区相关
- `HUGE_BUFFER`
- `HUGE_BUFFER_POOLS`
- 3. 共享缓冲区相关
- `BUFFER`
- `BUFFER_POOLS`
- `BUFFER_MODE`
- `MAX_BUFFER`
- 4. 快速池相关
- `FAST_POOL_PAGES`
- 5. 回收池相关
- `RECYCLE_POOLS`
- 6. 回滚段池相关
- `ROLLSEG_POOLS`
- 7. 其他池相关
- `MAIL_VPOOL_SIZE`
- `VM_POOL_SIZE` 和 `VM_POOL_TARGET`
- `SESS_POOL_SIZE` 和 `SESS_POOL_TARGET`
- `COLDATA_POOL_SIZE`
- `CACHE_POOL_SIZE`
- `RLOG_POOL_SIZE` 和 `LOG_POOL_SIZE`
- `BCT_POOL_SIZE`
- 8. 其他参数
- `POOL_CLEAR_FLAG`
- `MEM_POOL_EXTEND_MODE`
28个相关参数
SELECT NAME, TYPE, VALUE, DEFAULT_VALUE
FROM v$parameter
WHERE name LIKE '%BUFFER%' OR name LIKE '%POOL%';
以下是对查询结果中各个参数的详细说明,包括参数作用和推荐值:
1. 内存池相关
MEMORY_POOL
- 参数作用:该参数定义了数据库使用的内存池的初始大小。内存池用于管理数据库运行过程中的内存分配,为各种操作提供内存资源。
- 推荐值:一般建议设置为服务器物理内存的 10% - 30%。如果数据库的并发操作较多、数据量较大,可适当提高该值;若服务器上还有其他应用程序,需要综合考虑降低比例。例如,对于 16GB 物理内存的服务器,可设置为 2GB - 4GB 左右(2048 - 4096MB) 。
MEMORY_N_POOLS
- 参数作用:指定内存池的数量。多个内存池可以提高内存分配的并发性能,减少内存分配的竞争。
- 推荐值:通常设置为 1 即可满足大多数场景。如果数据库并发访问非常高,可适当增加该值,但一般不超过 CPU 核心数。
MEMORY_BAK_POOL
- 参数作用:用于备份操作的内存池大小。备份操作需要一定的内存来缓存数据,以提高备份效率。
- 推荐值:根据备份数据量的大小来调整。如果备份数据量较小,可设置为较小的值,如 4MB;如果备份数据量较大,可适当增大,但一般不超过服务器物理内存的 5%。
2. 大缓冲区相关
HUGE_BUFFER
- 参数作用:设置大缓冲区的大小。大缓冲区主要用于处理大数据块的读写操作,例如大表的全量扫描、批量数据加载等。
- 推荐值:可根据数据库中大数据操作的频率和数据量来调整。一般可以设置为 80 - 200MB 。如果数据库中经常有大数据量的操作,可适当增大该值。
HUGE_BUFFER_POOLS
- 参数作用:指定大缓冲区池的数量。多个大缓冲区池可以提高大缓冲区分配的并发性能。
- 推荐值:通常设置为 4 即可满足大多数场景。如果大缓冲区的并发使用非常高,可适当增加该值,但一般不超过 CPU 核心数。
3. 共享缓冲区相关
BUFFER
- 参数作用:设置数据库的共享缓冲区大小。共享缓冲区用于缓存数据页和索引页,减少磁盘 I/O 操作,提高数据库的读写性能。
- 推荐值:一般建议设置为服务器物理内存的 20% - 50%。如果服务器主要运行达梦数据库且 I/O 负载大,可适当提高比例;若还有其他应用程序,则需综合考虑降低比例。例如,对于 16GB 物理内存的服务器,可设置为 4GB - 8GB 左右(4096 - 8192MB) 。
BUFFER_POOLS
- 参数作用:指定共享缓冲区池的数量。多个共享缓冲区池可以提高共享缓冲区分配的并发性能。
- 推荐值:根据服务器的 CPU 核心数和并发访问情况来调整。一般可以设置为 CPU 核心数的一半到两倍之间。
BUFFER_MODE
- 参数作用:设置共享缓冲区的工作模式。不同的模式会影响缓冲区的管理策略和性能。
- 推荐值:一般使用默认值 0 即可。如果对数据库性能有特殊要求,可以参考达梦数据库官方文档进行调整。
MAX_BUFFER
- 参数作用:设置共享缓冲区的最大可使用大小。当数据库对缓冲区的需求增加时,在不超过
MAX_BUFFER
的限制下,BUFFER
可以动态增长。 - 推荐值:通常设置为略大于
BUFFER
的值,例如BUFFER
设置为 4GB,MAX_BUFFER
可以设置为 4.5GB - 5GB 左右。
4. 快速池相关
FAST_POOL_PAGES
- 参数作用:设置快速池的页面数量。快速池用于快速分配和释放小内存块,提高内存分配的效率。
- 推荐值:一般使用默认值 3000 即可。如果数据库中频繁进行小内存块的分配和释放操作,可以适当增加该值。
5. 回收池相关
RECYCLE_POOLS
- 参数作用:指定回收池的数量。回收池用于管理不再使用的内存块,以便重新分配给其他操作。
- 推荐值:通常设置为 19 即可满足大多数场景。如果数据库的内存回收操作比较频繁,可以适当增加该值。
6. 回滚段池相关
ROLLSEG_POOLS
- 参数作用:指定回滚段池的数量。回滚段用于记录事务的回滚信息,保证事务的原子性和一致性。
- 推荐值:一般设置为 1 即可。如果数据库的并发事务非常多,可以适当增加该值。
7. 其他池相关
MAIL_VPOOL_SIZE
- 参数作用:设置邮件虚拟池的大小。该参数可能与数据库的邮件通知功能相关,用于缓存邮件相关的数据。
- 推荐值:一般使用默认值 128MB 即可。如果邮件通知比较频繁,可以适当增加该值。
VM_POOL_SIZE
和 VM_POOL_TARGET
- 参数作用:
VM_POOL_SIZE
设置虚拟内存池的初始大小,VM_POOL_TARGET
设置虚拟内存池的目标大小。虚拟内存池用于管理数据库的虚拟内存分配。 - 推荐值:
VM_POOL_SIZE
可以设置为服务器物理内存的 5% - 10%,VM_POOL_TARGET
可以设置为略大于VM_POOL_SIZE
的值。
SESS_POOL_SIZE
和 SESS_POOL_TARGET
- 参数作用:
SESS_POOL_SIZE
设置会话池的初始大小,SESS_POOL_TARGET
设置会话池的目标大小。会话池用于管理数据库的会话连接,提高会话的创建和销毁效率。 - 推荐值:
SESS_POOL_SIZE
可以根据数据库的并发会话数量来设置,一般可以设置为最大并发会话数的 10% - 20%;SESS_POOL_TARGET
可以设置为略大于SESS_POOL_SIZE
的值。
COLDATA_POOL_SIZE
- 参数作用:设置冷数据池的大小。冷数据池用于缓存不经常访问的数据,以减少内存的占用。
- 推荐值:如果数据库中有大量不经常访问的数据,可以适当增大该值;如果数据访问比较均匀,可以设置为 0 。
CACHE_POOL_SIZE
- 参数作用:设置缓存池的大小。缓存池用于缓存经常访问的数据和对象,提高数据的访问速度。
- 推荐值:一般建议设置为服务器物理内存的 5% - 15%。
RLOG_POOL_SIZE
和 LOG_POOL_SIZE
- 参数作用:
RLOG_POOL_SIZE
设置重做日志池的大小,LOG_POOL_SIZE
设置日志池的大小。日志池用于缓存数据库的日志信息,减少日志写入磁盘的次数,提高日志写入性能。 - 推荐值:通常可设置为服务器物理内存的 1% - 5%。
BCT_POOL_SIZE
- 参数作用:设置 BCT(块变更跟踪)池的大小。BCT 用于跟踪数据块的变更信息,提高备份和恢复的效率。
- 推荐值:一般使用默认值 256MB 即可。如果数据库的数据变更比较频繁,可以适当增加该值。
8. 其他参数
POOL_CLEAR_FLAG
- 参数作用:设置内存池的清理标志。该参数控制内存池在何时进行清理操作,以释放不再使用的内存。
- 推荐值:一般使用默认值 0 即可。如果需要定期清理内存池,可以根据实际情况进行调整。
MEM_POOL_EXTEND_MODE
- 参数作用:设置内存池的扩展模式。不同的扩展模式会影响内存池在需要扩展时的行为。
- 推荐值:一般使用默认值 7 即可。如果对内存池的扩展性能有特殊要求,可以参考达梦数据库官方文档进行调整。
需要注意的是,以上推荐值仅为参考,实际设置时需要根据数据库的具体情况、服务器的硬件配置和业务需求进行综合考虑和调整。在调整参数后,建议进行性能测试,观察数据库的性能变化,以确保参数设置的合理性。