中国队世界杯_2014世界杯德国 - dyhdcw.com

达梦8——内存参数分析

一、内存简介

达梦数据库的内存使用简单可以分为如下三部分:

select * from v$mem_pool;

select * from v$dm_ini where para_NAME = 'MEMORY_POOL';

达梦数据库系统使用的内存分为3部分。分别是缓冲区内存、主内存、其他内存。

二、达梦内存详解

1、缓冲区

缓冲区内存分为

(1)数据缓冲区

normal缓冲区,对应的ini参数是buffer,

keep缓冲区,常驻的数据都放在keep数据页中,对应的ini参数就是keep,

recycle缓冲区,高并发系统、使用with as语句较多,临时数据较多需要将这个recycle数据页所占用的内存值调大,对应的ini参数是recycle。记住所有的页大小在初始化实例时已经设定好了,现在使用ini参数修改的是缓冲区内存大小。

fast缓冲区,fast包含数据页和回滚页, 常驻缓冲区,这两者都是由系统自动管理,无需用户干涉对应的ini参数是fast_pool_pages和fast_roll_pages,代表fast缓冲区的大小为多少个数据页。,

select * from v$dm_ini where para_NAME = 'BUFFER';

select * from v$dm_ini where para_NAME = 'KEEP';

select * from v$dm_ini where para_NAME = 'RECYCLE';

select * from v$dm_ini where para_NAME = 'FAST_POOL_PAGES';select * from v$dm_ini where para_NAME = 'FAST_ROLL_PAGES';

有个视图v$bufferpool代表了数据缓冲区所有的pool,咱看这个视图的查询结果:

通过v$bufferpool视图和这个sql,可以大致算出数据缓冲区的总大小

select sum(n_pages * page_size) from v$bufferpool;

(2)日志缓冲区

redo_log日志在写入磁盘前,先写入在日志缓冲区中,最后在机会合适时再写入日志缓冲区。对应的ini参数是RLOG_BUF_SIZE

select * from V$DM_INI WHERE PARA_NAME = 'RLOG_BUF_SIZE'; 单位是页数量

SELECT * FROM v$rlog;

(3)sql缓冲区

所需执行的sql执行计划,sql,结果集都会在缓存在sql缓冲区中。

v$cacheitem,记录了当前sql缓冲区的使用情况。此外,v$cachepln、v$cachers、v$cachesql分别记录了执行计划缓存、结果集缓存、SQL语句缓存(注:这些视图都是在参数USE_PLN_POOL !=0才统计,其中结果集缓存还受rs_can_cache、rs_cache_tables、rs_cache_min_time参数控制)。

对于SQL类别多、包比较多的系统可适当调大该参数。

常用 Select sum(item_size) from v$cacheitem 来计算SCP的大小。(存疑,这个结算结果和cache——pool——size的值不一样)

select * from v$dm_ini where para_NAME = 'CACHE_POOL_SIZE'; 单位是M

SELECT * FROM V$CACHEPLN;

(4)数据字典缓冲区

数据库对像比如表,索引,视图,序列,同义词,触发器,存储过程的信息都缓存在数据字典缓冲区中。

在数据库对象较多时,可适当增大该参数。通过查询select total_size,used_size FROM v$dict_cache

select * from V$DM_INI WHERE PARA_NAME = 'DICT_BUF_SIZE';

若想知道字典缓冲区中缓存对象的详细信息需查询视图v$dict_cache_item

SELECT * FROM V$DICT_CACHE_ITEM ;

Copyright © 2022 中国队世界杯_2014世界杯德国 - dyhdcw.com All Rights Reserved.