当前位置: 首页 > news >正文

数据库管理-第123期 Oracle相关两个参数(202301205)

数据库管理-第123期 Oracle相关两个参数(202301205)

最近在群聊中看到俩和Oracle数据库相关的俩参数,一个是Oracle数据库本身的,一个是来自于Weblogic的,挺有趣的,本期研究一下。(本期涉及参数讲解均以Oracle DB 19c或WLS 12.2.1.4.0为准)

1 db_flash_cache_file/db_flash_cache_size

乍眼一看,还以为和闪回有关,但是细看发现是flash cache,查看Oracle Database 19c-Database Concepts-Memory Architecture部分官方文档,这个一个是否开启并配置Flash Cache功能的参数。Flash Cache的体系结构大致如下:
在这里插入图片描述
启动Flash Cache(或叫Smart Flash Cache,智能闪存缓存)的目的与内存buffer cache一致,将经常访问的数据块放到缓存里,这里将这部分缓冲区缓存可以位于闪存中。此缓冲区缓存扩展存储在一个或多个闪存磁盘设备上,这些设备是使用闪存的固态存储设备。数据库可以通过在闪存中缓存缓冲区而不是从磁盘读取来提高性能。(这里需要注意的是,该功能只能在Solaris或Oracle Linux上开启)
当Flash cache开启时,DBW可以将一个clean buffer写入闪存缓存,从而实现其内存buffer的重用。数据库将buffer头保存在主存储器的LRU列表中,以跟踪闪存中buffer的状态和位置。如果以后需要这个buffer,那么数据库可以从闪存中读取,而不是从磁盘中读取。
该功能本质是对内存buffer cache的一种容量扩展或者磁盘热数据的升级,使用Flash cache中缓存的buffer仍然需要将对应buffer刷入内存中使用,但是可以通过Flash Card的高性能实现IO层面的加速。
关于Flash Cache的两个参数使用方式如下:
DB_FLASH_CACHE_FILE指定用于数据库智能闪存的闪存内存或表示闪存集合的磁盘组的文件名。最多可以配置16个文件名。
DB_FLASH_CACHE_SIZE指定数据库智能闪存的大小。此参数只能在实例启动时指定。与上面参数内容一一对应,最多16个。大小限制为0(不启用),16M至(2048G-块大小)。

db_flash_cache_file = /dev/raw/sda, /dev/raw/sdb, /dev/raw/sdc
db_flash_cache_size = 32G, 32G, 64G
db_flash_cache_size = 32G, 0, 64G

Flash Cache这个参数我是没有用过的,感觉在RAC上意义也不是太大,而我这大多数又在Exadata上。

2 Statement Cache

Statement Cache是Weblogic Server(WLS)中用于自带JDBC连接池的一个配置参数:

To improve performance, WebLogic Server can cache prepared and callable statements used in your applications (enabled by default). When an application or EJB calls any of the statements stored in the cache, WebLogic Server reuses the statement stored in the cache. Each database connection in a data source has it’s own statement cache.
为了提高性能,WebLogic Server可以缓存应用程序中使用的准备好的和可调用的语句(默认情况下启用)。当应用程序或EJB调用存储在缓存中的任何语句时,WebLogic Server会重用存储在缓存内的语句。数据源中的每个数据库连接都有自己的语句缓存。

在Configuration: Connect Pool的配置中Statement Cache Type可以指定使用LRU或Fixed方式来选择缓存的语句,而Statement Cache Size则指定每个数据源实例的每个连接要缓存的语句数。
仅仅通过官方文档,我们很容易将Statement Cache理解成WLS中间件层缓存SQL相关数据,然而在MOS文档**What does Statement Cache Size mean? (Doc ID 1298036.1)**中,对Statement Cache如何发挥作用有更加全面、深入的解释:
在这里插入图片描述
从MOS文档可以看到Statement Cache本质上还是在数据库层面通过游标来维持对应语句处于open状态,在下一次执行语句时可以直接运行。这个功能并没有将语句的任何信息缓存在WLS中。同时开启该功能,配置不合理还可能出现游标耗尽,OOM等问题。

总结

本期介绍了Oracle DB和WLS中两个比较有趣的配置参数。
老规矩,知道写了些啥。

http://www.lryc.cn/news/256165.html

相关文章:

  • 掌握vue中国际化使用及配置
  • Ubuntu编译文件安装SNMP服务
  • 3D Web可视化平台助力Aras开发PLM系统:提供数据访问、可视化和发布功能
  • Graphpad Prism10.1.0 安装教程 (含Win/Mac版)
  • 【动态规划】路径问题_不同路径_C++
  • Python并发-线程和进程
  • 微信小程序适配方案:rpx(responsive pixel响应式像素单位)
  • vue2 echarts饼状图,柱状图,折线图,简单封装以及使用
  • Linux信息收集
  • 三种定时任务总结
  • [足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number
  • 使用 MITRE ATTCK® 框架缓解网络安全威胁
  • 从零构建属于自己的GPT系列4:模型训练3(训练过程解读、序列填充函数、损失计算函数、评价函数、代码逐行解读)
  • 光学遥感显著目标检测初探笔记总结
  • HttpComponents: 领域对象的设计
  • 使用wire重构商品微服务
  • 大三上实训内容
  • IOT安全学习路标
  • java中线程的状态是如何转换的?
  • 处理合并目录下的Excel文件数据并指定列去重
  • Numpy数组的去重 np.unique()(第15讲)
  • ROS-log功能区别
  • 学习git后,真正在项目中如何使用?
  • Qt国际化翻译Linguist使用
  • ShardingSphere数据分片之分表操作
  • 基于ssm鲸落文化线上体验馆论文
  • LeetCode Hot100 131.分割回文串
  • SAP UI5 walkthrough step9 Component Configuration
  • 【数据结构和算法】--- 栈
  • CentOS7.0 下rpm安装MySQL5.5.60