Oracle12c中性能优化增强新特性之数据库智能闪存
智能闪存功能最初在XD中引入。从Oracle11.2.0.2开始,除了用于XD存储,还可用于任何闪盘。Oracle12c中,不需卷管理器就可以使用闪盘。
1. 简介
智能闪存在solaris和linux上都可用,允许用户把闪盘当做第二层缓冲使用来改善性能。通常,当缓存中的数据因超时而被刷出后,下次使用时需被再次从磁盘读取到内存。通过智能闪存,超时的数据可以被放在智能缓存中,当这些数据被再次使用时,比从磁盘上读取能更快些。
为了能优化性能,官方文档建议智能闪存应该为缓存的2~10倍。这里,我们有1G缓冲,因此,应该配置2G以上大小的闪存。如下,我通过两块磁盘来模拟闪存。
# dd if=/dev/zeroof=/mnt/smt_flschc1 bs=1024 count=1024000
# dd if=/dev/zeroof=/mnt/smt_flschc2 bs=1024 count=1024000
# chownoracle:oinstall /mnt/smt_flschc1 /mnt/smt_flschc2
智能闪存内容的元数据在缓存中,如果你不考虑这点,实际缓存的大小在用智能缓存时会被减小。为了计算减小的缓存大小,可以通过智能缓存中每个块占用100字节来计算。RAC中,你还需要考虑共享池的大小,每个GCS资源需要多占208个字节。
2. 启用智能缓存
DB_FLASH_CACHE_FILE参数用来鉴定用于智能闪存的闪盘。
DB_FLASH_CACHE_FILE = /mnt/smt_flschc1,/mnt/smt_flschc2
盘大小通过DB_FLASH_CACHE_SIZE参数确定。
DB_FLASH_CACHE_SIZE = 1G, 1G
这些参数可以通过ALTERSYSTEM命令来设置,也可以通过编辑pfile来进行设置,编辑pfile的方式如下。
SQL> CREATE PFILE='/tmp/pfile.txt' FROMSPFILE;
SQL>host edit;
*.db_flash_cache_file=/mnt/smt_flschc1,/mnt/smt_flschc2
*.db_flash_cache_size=1073741824,1073741824
SQL> CREATE SPFILE FROMPFILE='/tmp/pfile.txt';
重启数据库。
SHUTDOWN IMMEDIATE;
STARTUP;
重启后,可以看到配置的参数。
SQL> SHOW PARAMETER db_flash_cache
NAME TYPE VALUE
----------------------------------------------- ------------------------------
db_flash_cache_file string /mnt/smt_flschc1, /mnt/smt_flschc2
db_flash_cache_size big integer 1G, 1G
SQL>
智能闪存使用信息可以查询视图V$FLASHFILESTAT。
SET LINESIZE 100
COLUMN name FORMAT A20
SELECT * FROM v$flashfilestat;
FLASHFILE# NAME BYTES ENABLED SINGLEBLKRDSSINGLEBLKRDTIM_MICRO CON_ID
---------- -------------------- -------------------- ------------ -------------------- ----------
1 /mnt/smt_flschc1 1073741824 1 0 0 0
2 /mnt/smt_flschc2 1073741824 1 0 0 0
SQL>
3. 禁用智能闪存
重置初始化参数以禁用智能闪存。
ALTER SYSTEM RESET DB_FLASH_CACHE_FILESCOPE=SPFILE;
ALTER SYSTEM RESET DB_FLASH_CACHE_SIZESCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
SELECT * FROM v$flashfilestat;
no rows selected
SQL>
4. 修改表的智能闪存设置
缓存中过期数据块将被默认刷到智能闪存中。ALTER TABLE命令的FLASH_CACHE子句可以进行另外设置。
-- 禁止TEST表使用智能闪存
ALTER TABLE TEST.TEST STORAGE (FLASH_CACHENONE);
-- 强制TEST表保留在智能闪存中
ALTER TABLE TEST.TEST STORAGE (FLASH_CACHEKEEP);
-- 重置TEST表的默认行为
ALTER TABLE TEST.TEST STORAGE(FLASH_CACHE);
ALTER TABLE TEST.TEST STORAGE (FLASH_CACHEDEFAULT);
5. 性能
智能闪盘对性能的提升时,我们应该注意。很多人说,把数据文件放在闪盘上比用智能闪存性能更好。不过,测试结果和使用的硬件及应用需求有很大关系,不可一概而论。
Oracle12c中性能优化增强新特性之数据库智能闪存的更多相关文章
- Oracle12c 中RAC功能增强新特性之ASM&Grid
1. 自动存储管理(ASM)方面的增强 1.1. Flex ASM 在典型的网格架构安装中,每个节点有自己的ASM实例运行并扮演该节点上数据库的存储容器的角色,对这种安装配置,存在单点失败的 ...
- Oracle12c中性能优化&功能增强新特性之临时undo
临时表最有意思的特点之一是undo段也存储在常规undo表空间中,而它们的undo反过来被redo保护,这会导致一些问题. 1) 写undo表空间需要数据库以读写模式打开,因此,只读数据库和物理备库 ...
- java并发学习--第八章 JDK 8 中线程优化的新特性
一.新增原子类LongAdder LongAdder是JDK8中AtomicLong的增强工具类,它与AtomicLong最大的不同就是:在多线程场景下,LongAdder中对单一的变量进行拆分成多个 ...
- Oracle12c中性能优化&功能增强新特性之全局索引DROP和TRUNCATE 分区的异步维护
Oracle 12c中,通过延迟相关索引的维护可以优化某些DROP和TRUNCATE分区命令的性能,同时,保持全局索引为有效. 1. 设置 下面的例子演示带全局索引的表创建和加载数据的过程. -- ...
- Oracle12c中性能优化&功能增强新特性之重大突破——内存列存储新特性
内存列存储(IM column store) 是Oracle12.1.0.2版本的主要特点.该特点允许列,表,分区和物化视图在内存中以列格式存储,而不是通常的行格式.数据存在内存中的好处显而易见,而列 ...
- Oracle12c中性能优化新特性之新增APPROX_COUNT_DISTINCT 快速唯一值计数函数
Oracle11g中,为了改善DBMS_STATS包收集统计信息时的唯一值计数功能,增加了 APPROX_COUNT_DISTINCT函数,但文档中未记载.Oracle12c文档中包括了该函数,因此, ...
- Oracle12c中PL/SQL(DBMS_SQL)新特性之隐式语句结果(DBMS_SQL.RETURN_RESULT and DBMS_SQL.GET_NEXT_RESULT)
隐式数据结果特性将能简化从其他数据库到Oracle12c存储过程迁移.1. 背景T-SQL中允许查询结果的隐式返回.例如:下面T-SQL存储过程隐式返回查询结果.CREATE PROCEDURE Ge ...
- 【译】.NET 5. 0 中 Windows Form 的新特性
自从 Windows Form 在 2018 年底开源并移植到 .NET Core 以来,团队和我们的外部贡献者都在忙于修复旧的漏洞和添加新功能.在这篇文章中,我们将讨论 .NET 5.0 中 Win ...
- ABAP 7.52 中的Open SQL新特性
S/4 HANA 1709 已经在几个月前发布,随之而来的是ABAP 7.52. 本文翻译了更新文档中有关Open SQL的部分 本文链接:http://www.cnblogs.com/hhelibe ...
随机推荐
- finedb(内置的HSQL数据库)迁移数据到MySQL
finedb(内置的HSQL数据库)迁移数据到MySQL 1. 前言 在FineBI中,决策平台的数据(用户.角色.组织机构.权限等信息)是存储在finedb数据库中的,默认情况下finedb是一个内 ...
- SCP报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
经过google,出现这个问题的原因是,这是ssh的问题, GkFool大神说(第一次使用SSH连接时,会生成一个认证,储存在客户端的known_hosts中) 我的解决办法是: ssh-keygen ...
- CSS实现三角形、梯形、平行四边形、圆形、椭圆形、对话框、自适应正方形
本文篇幅较长,希望能坚持看完,转载请注明出处,如果觉得好文请给个赞吧 CSS实现梯形 CSS实现三角形和梯形主要是依靠border是梯形的特性来做的,有点像相框的那种感觉. 首先我们先给一个正方形设置 ...
- Asterisk1.8 转码策略分析
最近在修改asterisk转码和编码协商的问题,发现asterisk的转码策略的选择还是有些问题的(基于1.8.9.3版本).——————————————相关的CLI命令转码路径的调试命令:core ...
- javascript 构造函数类和原型 prototyp e定义的属性和方法的区别
1.把方法写在原型中比写在构造函数中消耗的内存更小,因为在内存中一个类的原型只有一个,写在原型中的行为可以被所有实例共享,实例化的时候并不会在实例的内存中再复制一份而写在类中的方法,实例化的时候会在每 ...
- 51Nod 1344 走格子(贪心
1344 走格子 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去.机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值.如果A[i ...
- 【eclipse】聚合工程maven启动Tomcat报错
严重: Error configuring application listener of class严重: Skipped installing application listeners due ...
- UVa 1629 切蛋糕(记忆化搜索)
https://vjudge.net/problem/UVA-1629 题意: 有一个n行m列的网格蛋糕上有一些樱桃.每次可以用一刀沿着网格线把蛋糕切成两块,并且只能直切不能拐弯.要求最后每一块蛋糕上 ...
- json 保存
with open(mpath,"w") as k: dlist=[] for key in yaml_dict["data"]: dlist.append(y ...
- 查看 rospkg 变量
echo $ROS_PACKAGE_PATH