重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1701|回复: 0
打印 上一主题 下一主题

oracle 12cR2 smart flash cache

[复制链接]
跳转到指定楼层
楼主
发表于 2019-8-8 16:16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近一直在处理新系统的性能优化问题,这两天特地测试了下oracle 11gR2开始引入的smart flash cache。
其介绍参考MOS文档,How To Size the Database Smart Flash Cache (文档 ID 1317950.1)
The Database Smart Flash Cache is a new feature in Oracle Database 11g Release 2 (11.2).
The Database Smart Flash Cache is a transparent extension of the database buffer cache using solid state device (SSD) technology.
The SSD acts as a Level 2 cache to the (Level 1) SGA.

Database Smart Flash Cache can greatly improve the performance of Oracle databases by reducing the amount of disk I/O at a much lower cost than adding an equivalent amount of RAM.
简单的说,他比较适合于系统中绝大部分存储使用机械硬盘,但是又配备了小部分SSD的场景,比如说我们的某个系统4.5T存储,600GB的SSD。
Your database is running on the Solaris or Oracle Linux operating systems.
The flash cache is supported on these operating systems only.
如果不是solaris或者OEL,则启动时报错,这很有可能会是个最大的限制,因为很多企业限定了必须使用RHEL/CENTOS/SUSE。如下:
SQL> startup;
ORA-00439: feature not enabled: Server Flash Cache
这明显就是Oracle设置的障碍。
可以通过DB_FLASH_CACHE_FILE和db_flash_cache_size设置智能闪存的位置以及大小。
下面来看实际效果:


[oracle@oel-12c ~$ sqlplus "/as sysdba"SQL*Plus: Release 12.2.0.1.0 Production on 星期五 9月 7 20:13:00 2018Copyright (c) 1982, 2016, Oracle.  All rights reserved.连接到: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit ProductionSQL> create tablespace my_ts_2 datafile '/u01/app/oracle/oradata/nfs_to_14/my_ts02.dbf' size 1g autoextend on next 10m maxsize unlimited;表空间已创建。SQL> create table my_big_table as select * from dba_tables;表已创建。SQL> alter table my_big_table move tablespace my_ts_2; --移动到NFS存储上表已更改。SQL> insert into my_big_table select * from my_big_table;已创建 2106 行。SQL> /已创建 4212 行。SQL> /已创建 8424 行。SQL> /已创建 16848 行。SQL> /已创建 33696 行。SQL> /已创建 67392 行。SQL> commit;提交完成。SQL> /提交完成。SQL> insert into my_big_table select * from my_big_table;已创建 134784 行。SQL> /已创建 269568 行。SQL> commit;提交完成。SQL> insert into my_big_table select * from my_big_table;已创建 539136 行。SQL> commit;


使用智能闪存:


SQL> set autotrace on;SQL> select count(1) from my_big_table;  COUNT(1)----------   1078272已用时间:  00: 00: 33.06执行计划----------------------------------------------------------Plan hash value: 1307946652---------------------------------------------------------------------------| Id  | Operation       | Name      | Rows  | Cost (%CPU)| Time      |---------------------------------------------------------------------------|   0 | SELECT STATEMENT   |          |    1 | 12973   (1)| 00:00:01 ||   1 |  SORT AGGREGATE    |          |    1 |           |      ||   2 |   TABLE ACCESS FULL| MY_BIG_TABLE |   969K| 12973   (1)| 00:00:01 |---------------------------------------------------------------------------Note-----   - dynamic statistics used: dynamic sampling (level=2)统计信息----------------------------------------------------------    124  recursive calls      0  db block gets      47210  consistent gets      47193  physical reads    132  redo size    546  bytes sent via SQL*Net to client    607  bytes received via SQL*Net from client      2  SQL*Net roundtrips to/from client      3  sorts (memory)      0  sorts (disk)      1  rows processedSQL> /  COUNT(1)----------   1078272已用时间:  00: 00: 03.00执行计划----------------------------------------------------------Plan hash value: 1307946652---------------------------------------------------------------------------| Id  | Operation       | Name      | Rows  | Cost (%CPU)| Time      |---------------------------------------------------------------------------|   0 | SELECT STATEMENT   |          |    1 | 12973   (1)| 00:00:01 ||   1 |  SORT AGGREGATE    |          |    1 |           |      ||   2 |   TABLE ACCESS FULL| MY_BIG_TABLE |   969K| 12973   (1)| 00:00:01 |---------------------------------------------------------------------------Note-----   - dynamic statistics used: dynamic sampling (level=2)统计信息----------------------------------------------------------      0  recursive calls      0  db block gets      47094  consistent gets      47006  physical reads      0  redo size    546  bytes sent via SQL*Net to client    607  bytes received via SQL*Net from client      2  SQL*Net roundtrips to/from client      0  sorts (memory)      0  sorts (disk)      1  rows processedSQL> /  COUNT(1)----------   1078272已用时间:  00: 00: 04.54执行计划----------------------------------------------------------Plan hash value: 1307946652---------------------------------------------------------------------------| Id  | Operation       | Name      | Rows  | Cost (%CPU)| Time      |---------------------------------------------------------------------------|   0 | SELECT STATEMENT   |          |    1 | 12973   (1)| 00:00:01 ||   1 |  SORT AGGREGATE    |          |    1 |           |      ||   2 |   TABLE ACCESS FULL| MY_BIG_TABLE |   969K| 12973   (1)| 00:00:01 |---------------------------------------------------------------------------Note-----   - dynamic statistics used: dynamic sampling (level=2)统计信息----------------------------------------------------------      0  recursive calls      0  db block gets      47094  consistent gets      47020  physical reads      0  redo size    546  bytes sent via SQL*Net to client    607  bytes received via SQL*Net from client      2  SQL*Net roundtrips to/from client      0  sorts (memory)      0  sorts (disk)      1  rows processedSQL> /  COUNT(1)----------   1078272已用时间:  00: 00: 02.24


不使用智能闪存:


SQL> alter system set db_flash_cache_size=0 ;系统已更改。已用时间:  00: 00: 01.01SQL> select count(1) from my_big_table;  COUNT(1)----------   1078272已用时间:  00: 00: 30.75执行计划----------------------------------------------------------Plan hash value: 1307946652---------------------------------------------------------------------------| Id  | Operation       | Name      | Rows  | Cost (%CPU)| Time      |---------------------------------------------------------------------------|   0 | SELECT STATEMENT   |          |    1 | 12973   (1)| 00:00:01 ||   1 |  SORT AGGREGATE    |          |    1 |           |      ||   2 |   TABLE ACCESS FULL| MY_BIG_TABLE |   969K| 12973   (1)| 00:00:01 |---------------------------------------------------------------------------Note-----   - dynamic statistics used: dynamic sampling (level=2)统计信息----------------------------------------------------------      0  recursive calls      0  db block gets      47094  consistent gets      47020  physical reads      0  redo size    546  bytes sent via SQL*Net to client    607  bytes received via SQL*Net from client      2  SQL*Net roundtrips to/from client      0  sorts (memory)      0  sorts (disk)      1  rows processedSQL> /  COUNT(1)----------   1078272已用时间:  00: 00: 32.20执行计划----------------------------------------------------------Plan hash value: 1307946652---------------------------------------------------------------------------| Id  | Operation       | Name      | Rows  | Cost (%CPU)| Time      |---------------------------------------------------------------------------|   0 | SELECT STATEMENT   |          |    1 | 12973   (1)| 00:00:01 ||   1 |  SORT AGGREGATE    |          |    1 |           |      ||   2 |   TABLE ACCESS FULL| MY_BIG_TABLE |   969K| 12973   (1)| 00:00:01 |---------------------------------------------------------------------------Note-----   - dynamic statistics used: dynamic sampling (level=2)统计信息----------------------------------------------------------      0  recursive calls      0  db block gets      47094  consistent gets      47020  physical reads      0  redo size    546  bytes sent via SQL*Net to client    607  bytes received via SQL*Net from client      2  SQL*Net roundtrips to/from client      0  sorts (memory)      0  sorts (disk)      1  rows processedSQL> /  COUNT(1)----------   1078272已用时间:  00: 00: 17.56执行计划----------------------------------------------------------Plan hash value: 1307946652---------------------------------------------------------------------------| Id  | Operation       | Name      | Rows  | Cost (%CPU)| Time      |---------------------------------------------------------------------------|   0 | SELECT STATEMENT   |          |    1 | 12973   (1)| 00:00:01 ||   1 |  SORT AGGREGATE    |          |    1 |           |      ||   2 |   TABLE ACCESS FULL| MY_BIG_TABLE |   969K| 12973   (1)| 00:00:01 |---------------------------------------------------------------------------Note-----   - dynamic statistics used: dynamic sampling (level=2)统计信息----------------------------------------------------------      0  recursive calls      0  db block gets      47094  consistent gets      47019  physical reads      0  redo size    546  bytes sent via SQL*Net to client    607  bytes received via SQL*Net from client      2  SQL*Net roundtrips to/from client      0  sorts (memory)      0  sorts (disk)      1  rows processedSQL> /  COUNT(1)----------   1078272已用时间:  00: 00: 15.11执行计划----------------------------------------------------------Plan hash value: 1307946652---------------------------------------------------------------------------| Id  | Operation       | Name      | Rows  | Cost (%CPU)| Time      |---------------------------------------------------------------------------|   0 | SELECT STATEMENT   |          |    1 | 12973   (1)| 00:00:01 ||   1 |  SORT AGGREGATE    |          |    1 |           |      ||   2 |   TABLE ACCESS FULL| MY_BIG_TABLE |   969K| 12973   (1)| 00:00:01 |---------------------------------------------------------------------------Note-----   - dynamic statistics used: dynamic sampling (level=2)统计信息----------------------------------------------------------      0  recursive calls      0  db block gets      47094  consistent gets      47019  physical reads      0  redo size    546  bytes sent via SQL*Net to client    607  bytes received via SQL*Net from client      2  SQL*Net roundtrips to/from client      0  sorts (memory)      0  sorts (disk)      1  rows processedSQL> /  COUNT(1)----------   1078272已用时间:  00: 00: 15.69

如上所述,性能相差了6-7倍。可见智能闪存效果还是不错的。
不过需要注意的是,如果95%+的常用数据都已经在iops足够高的磁盘上了比如SSD,这个时候又拿一部分SSD作为智能缓存,性能反而会下降比直接访问磁盘高达1倍。


在oracle 11g中,闪存文件只能配置1个,在12c中没有这个限制了。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-28 18:09 , Processed in 0.094968 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表