Oracle RAC cache fusion原理測试
Oracle RAC cache fusion是RAC最核心的工作机制。他把全部实例的SGA虚拟成一个大的SGA区,每当不同的实例请求同样的数据块,这个数据块就须要在实例间进行传递。
那究竟什么时候传递呢?
假设RAC有4个节点,当中的一个节点运行了一条SQL是全表扫描一张表,这个时候这个节点把这张表的数据载入到缓存;
方式1 :其它的节点假设须要同样的数据块会取第一个节点的数据,那是须要的时候取。
方式2 :还是第一个节点推送。
实验设定:
1.清空4个节点的share pool和databuffer。事实上当清除第一个节点的时候。其它的节点都已经清除了,从运行清除语句的时间就能够看出。清除后查下各节点data buffer中有没有缓存将要运行的SQL的表。
2.在第一个节点上运行一条SQL.,在其它的节点上看data buffer中是否缓存SQL的表,假设有,说明是数据块是主动推送的。
实验结论:
数据块从第运行的节点推送到其它的节点上,RAC尽管使得使用的资源多了几倍。但因为cache fusion这个特性,上了RAC后的系统系统是否有提升还是未知之数。
---清理4个节点(54,55,56,57)shared_pool和buffer_cache
如今节点54上清理share pool和data buffer
SQL> alter system flush shared_pool;
系统已更改。
SQL> alter system flush buffer_cache;
系统已更改。
---在其它的节点55,56,57上相同运行
---在第54个节点測试语句
SQL> SELECT COUNT(1)
2 FROM MM_DISTRIBUTION W
3 WHERE W.DATA_AREA LIKE '03'
4 || '%'
5 AND W.CREATE_DATE > TO_DATE('2013-01-01', 'yyyy-mm-dd');
已用时间: 00: 00: 02.40
运行计划
----------------------------------------------------------
Plan hash value: 3507380501
-------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
-------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 13 | 5209 (2)| 00:01:03 | | |
| 1 | SORT AGGREGATE | | 1 | 13 | | | | |
| 2 | PARTITION LIST ALL| | 43668 | 554K| 5209 (2)| 00:01:03 | 1 | 2 |
|* 3 | TABLE ACCESS FULL| MM_DISTRIBUTION | 43668 | 554K| 5209 (2)| 00:01:03 | 1 | 2 |
-------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - filter("W"."CREATE_DATE">TO_DATE('2013-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
"W"."DATA_AREA" LIKE '03%')
统计信息
----------------------------------------------------------
2997 recursive calls
0 db block gets
24196 consistent gets
23581 physical reads
0 redo size
334 bytes sent via SQL*Net to client
338 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
39 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> /
已用时间: 00: 00: 00.28
运行计划
----------------------------------------------------------
Plan hash value: 3507380501
-------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
-------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 13 | 5209 (2)| 00:01:03 | | |
| 1 | SORT AGGREGATE | | 1 | 13 | | | | |
| 2 | PARTITION LIST ALL| | 43668 | 554K| 5209 (2)| 00:01:03 | 1 | 2 |
|* 3 | TABLE ACCESS FULL| MM_DISTRIBUTION | 43668 | 554K| 5209 (2)| 00:01:03 | 1 | 2 |
-------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
3 - filter("W"."CREATE_DATE">TO_DATE('2013-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
"W"."DATA_AREA" LIKE '03%')
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
23554 consistent gets
0 physical reads
0 redo size
334 bytes sent via SQL*Net to client
338 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
---在4个节点查看share_pool中的SQL是否同步
select sql_text from v$sql s where sql_text like '%MM_DISTRIBUTION%';
---在4个节点查看測试buffer_cache。能够看到其它的3个节点都已同步缓存数据
select count(b.object_name)
from sys.v_x$bh a, user_objects b
where a.OBJ = b.object_id
and b.object_name = 'MM_DISTRIBUTION'
and a.STATE <> 0; ---state=0表示free。其它表示已占用
COUNT(B.OBJECT_NAME)
--------------------
23543
Oracle RAC cache fusion原理測试的更多相关文章
- RAC Cache Fusion 原理理解
cache fusion . grd . drm . gcs . ges cache fusion 1.RAC是一个数据库执行在多个实例上.通过DLM(Distributed ...
- oracle rac cache fusion
转载自 http://blog.csdn.net/tianlesoftware/article/details/6534239 Introduction This post is about orac ...
- Oracle rac架构和原理
Oracle RAC Oracle Real Application Cluster (RAC,实时应用集群)用来在集群环境下实现多机共享数据库,以保证应用的高可用性:同时可以自动实现并行处理 ...
- 关于Oracle RAC中SCN原理和机制的探索
今天看书时看到了关于RAC中SCN的问题,为了进一步搞清楚其内部原理和机制,对该问题进行了广泛的查阅和搜索,遗憾的是,可以参考的资料很少,网上大部分是人云亦云的帖子,其中,详细介绍其内部原理和机制的资 ...
- oracle capability i/o(压力測试数据库serveri/o性能)
今天是2014-04-21,今天简单仅仅说明一下怎么影响重做数据的一个因素,那就是i/o吞吐量,oracle的介质恢复依赖于i/o,假设i/o存在瓶颈,那么势必会影响备库的介质恢复. 那么i/o st ...
- RAC Cache Fusion Background Processes
Acdante--每日三省吾身-- . 什么是缓存融合? .缓存融合工作原理? .缓存融合关键进程以及作用?
- 学习使用Jmeter做压力測试(一)--压力測试基本概念
一.性能測试的概念 性能測试是通过自己主动化的測试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行測试.负载測试和压力測试都属于性能測试,两者能够结合进行. 通过负载測试, ...
- Oracle Enterprise Linux 64-bit 下Oracle11g的监听配置改动及測试步骤
測试环境:Oracle Enterprise Linux 64-bit (5.8版本号) + Oracle 11g 64位 相关说明: Oracle11g64位软件的安装位置为/u01/app/ora ...
- 測试oracle 11g cluster 中OLR的重要性
測试oracle 11g cluster 中OLR的重要性 called an Oracle Local Registry (OLR): each node in a cluster has a ...
随机推荐
- grunt---grunt_test 测试用例
说明: http://www.gruntjs.net/getting-started --grunt快速入门(创建package.json和Gruntfile.js准备一份新的 Grunt 项目一般需 ...
- Head First HTML5 Programming笔记--chapter2 介绍Javascript和DOM
你已经了解了HTML标记(也称为结构),而且知道了CSS样式(也称为表示),剩下的就是Javascript(也称为行为). JavaScript的工作方式 1. 编写 你创建HTML标记和JavaSc ...
- SQL Server on Red Hat Enterprise Linux
本文从零开始一步一步介绍如何在Red Hat Enterprise Linux上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一. 创 ...
- 为什么上传文件的表单里要加个属性enctype----摘录
上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么写,知其然而不知其所以然.那到底为什 ...
- [USACO5.3]Big Barn (动态规划)
题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N x N 的方格.输入数据中包括有树的 ...
- java面试题之stop()和suspend()方法为何不不推荐使⽤?
stop方法:他是不安全的,他会停止所有运行中的线程: suspend方法:容易发生死锁,虽然调用suspend方法目标线程会停下来,但是仍然持有之前的锁,其他线程都不能访问锁定的资源,就会造成死锁, ...
- concurrentHashMap面试题
面试题: ConcurrentHashMap有哪些构造函数? ConcurrentHashMap使用什么技术来保证线程安全? ConcurrentHashMap的get方法是否要加锁,为什么? Con ...
- 16.1114 模拟考试T1
1.正确答案 [题目描述] 小H与小Y刚刚参加完UOIP外卡组的初赛,就迫不及待的跑出考场对答案. “吔,我的答案和你都不一样!”,小Y说道,”我们去找神犇们问答案吧”. 外卡组试卷中共有m道判断题, ...
- css样式---隐藏元素
1.通过设置width:0;或height:0 2.将元素的opacity设置成0 3.通过定位将元素移出屏幕范围 4.通过text-indent实现隐藏文字的效果 5.通过z-index隐藏一个元素 ...
- 标准C程序设计七---20
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...