oracle 12cR2 smart flash cache测试

最近一直在处理新系统的性能优化问题,这两天特地测试了下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设置智能闪存的位置以及大小。

下面来看实际效果:

[[email protected] ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 12.2.0.1.0 Production on 星期五 9月 7 20:13:00 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> 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 processed

SQL> /

  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 processed

SQL> /

  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 processed

SQL> /

  COUNT(1)
----------
   1078272

已用时间:  00: 00: 02.24

不使用智能闪存:

SQL> alter system set db_flash_cache_size=0 ;

系统已更改。

已用时间:  00: 00: 01.01
SQL> 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 processed

SQL> /

  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 processed

SQL> /

  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 processed

SQL> /

  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 processed

SQL> /

  COUNT(1)
----------
   1078272

已用时间:  00: 00: 15.69

如上所述,性能相差了6-7倍。可见智能闪存效果还是不错的。

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

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

原文地址:https://www.cnblogs.com/zhjh256/p/9607343.html

时间: 2024-11-08 01:21:11

oracle 12cR2 smart flash cache测试的相关文章

关于Oracle 11gR2中的Database Smart Flash Cache特性以及该特性所适用的操作系统

参考自: How To Size the Database Smart Flash Cache (文档 ID 1317950.1) 首先是对Database Smart Flash Cache的介绍: 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

[转帖]Oracle 12cR2使用经验

大规模升级来临,谈谈Oracle 12cR2使用经验 随着2019年2月13日,Oracle 19c (Oracle 12.2.0.3) for Exadata 版本发布,Oracle 12cR2体系的数据库版本终于迎来了长期支持版本(Oracle 12c的最后一个大版本),也就是说数据库版本还在Oracle 10g/11g的系统是时候考虑升级了. http://database.51cto.com/art/201904/595040.htm Oracle12c 的最终版本发布了 以后升级的用户

Oracle 12cR2 RAC安装配置及一些坑

Oracle 12cR2版本已经发布有一段时间,一直想测试安装RAC,从上周末到今天用了两个周末和今天一天的时间终于把RAC安装成功了.这里记录了安装时对操作系统的配置,以及安装过程中遇到的一些坑. 1.首先是操作系统的选择问题,Oracle现在认证的操作系统及内核版本如下: Oracle Linux 7: Oracle Linux 7 with the Unbreakable Enterprise kernel 3:3.8.13-35.3.1.el7uek.x86_64 or later Or

Oracle的FRA(Flash Recovery Area)的好处

如果FRA的空间耗尽,只会影响到这个Oracle实例自身.所以不会耗尽所有磁盘空间从而影响到其它的数据库实例或其它应用. Oracle的FRA(Flash Recovery Area)的好处,布布扣,bubuko.com

Oracle 学习之--Buffer Cache深入解析

Oracle 学习之--Buffer Cache深入解析 服务器进程和数据库缓冲区高速缓存: 当服务器需要块时,需要按系列步骤读取块: 1.首先,服务器使用散列函数检查是否可以从缓冲区高速缓存中获得所需要的块.如果找到缓冲区,则将它移动到LRU列表中远离LRU末尾的另一端.这是逻辑读取,因为没有发生实际的I/O.如果在缓冲区高速缓存中找不到缓冲区,则服务器进程(Server)必须从数据文件中读取.

Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题

风哥Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题包括内容: Oracle数据库12cR2(项目实战之一):在Windows上安装Oracle12.2 Oracle数据库12cR2(项目实战之五):Oracle12.2 RAC集群实施与维护 Oracle数据库12cR2(项目实战之六):Oracle12.2 RAC集群管理之增删节点 Oracle数据库12cR2(项目实战之七):Oracle12.2 RAC集群管理之修改IP地址 视频学习地址:http://ed

Oracle RAC Study之--Cache Fusion

Oracle RAC Study之--Cache Fusion Concept of cache fusion Cache Fusion basically is about fusing the memory buffer cache of multiple instance into one single cache. For example if we have 3 instance in a RAC which is using the same datafiles and each i

Oracle 12cR2 RAC+ASM安装

一.准备工作 1.关于Oracle Gird Infrastructure的一些变化 从Oracle Grid Infrastructure 12c第2版(12.2)开始,Oracle Grid Infrastructure软件可用作下载和安装的映像文件.此功能大大简化了Oracle Grid Infrastructure的安装过程. 注意:必须将GRID软件解压缩到安装Grid 软件的目录中,例如:/u01/app/12.2.0/grid,然后运行gridSetup.sh脚本以启动Oracle

FLASH 跨站脚本测试

概述 ActionScript 是基于ECMAScript 的一种语言.当处理交互需求时,Flash 应用程序会使用此语言.和其它语言一样,ActionScript 有一些可能会导致安全问题的实施模式.特别是,因为Flash 应用往往嵌入浏览器中,基于DOM的跨站脚本等漏洞同样可以在有缺陷的Flash 应用存在.  问题描述 自从"Flash 应用测试"[1]第一次出版,FlashPlayer 就发布了新版本以便缓和书中所描述的攻击威胁.然而,由于它很大程度上取决于开发商不安全的编程方