[Oracle]跨越 DBLINK 访问表时,数据缓存在何处的Data Buffer 中?
结论是存储在 remote 端,这其实也很好理解。在远端能高效率地计算,当然应当在远端完成缓存和检索。
■ Before query execution via DBLINK:
===========
DBLINK destination (remote side):
conn u2 / u2
create table tab002 as select * from dba_objects;
shu immediate
startup
select o.owner, o.object_name, o.object_type, s.buffer_pool, count (*) buffer
from dba_objects o, v $ bh b, dba_segments s
where b.objd = o.data_object_id
and o.owner = 'U 2'
and o.object_name = s.segment_name
and o.object_type = s.segment_type
group by o.owner, o.object_name, o.object_type, o.status, s.buffer_pool
order by buffers;
A record was not selected.
===========
Local side:
conn u3 / u3
select o.owner, o.object_name, o.object_type, s.buffer_pool, count (*) buffer
from dba_objects o, v $ bh b, dba_segments s
where b.objd = o.data_object_id
and o.owner = 'U 2'
and o.object_name = s.segment_name
and o.object_type = s.segment_type
group by o.owner, o.object_name, o.object_type, o.status, s.buffer_pool
order by buffers;
A record was not selected.
select o.owner, o.object_name, o.object_type, s.buffer_pool, count (*) buffer
from dba_objects o, v $ bh b, dba_segments s
where b.objd = o.data_object_id
and o.owner = 'U3'
and o.object_name = s.segment_name
and o.object_type = s.segment_type
group by o.owner, o.object_name, o.object_type, o.status, s.buffer_pool
order by buffers;
A record was not selected.
■ Query execution via DBLINK:
SQL> select count (*) from tab002 @ dbk;
COUNT (*)
----------
69263
conn u3 / u3
select o.owner, o.object_name, o.object_type, s.buffer_pool, count (*) buffer
from dba_objects o, v $ bh b, dba_segments s
where b.objd = o.data_object_id
and o.owner = 'U 2'
and o.object_name = s.segment_name
and o.object_type = s.segment_type
group by o.owner, o.object_name, o.object_type, o.status, s.buffer_pool
order by buffers;
A record was not selected. <<<<<<<<<<< Cache has no related information
select o.owner, o.object_name, o.object_type, s.buffer_pool, count (*) buffer
from dba_objects o, v $ bh b, dba_segments s
where b.objd = o.data_object_id
and o.owner = 'U3'
and o.object_name = s.segment_name
and o.object_type = s.segment_type
group by o.owner, o.object_name, o.object_type, o.status, s.buffer_pool
order by buffers;
A record was not selected. <<<<<<<<<<< Cache has no related information
===========
DBLINK destination (remote side):
select o.owner, o.object_name, o.object_type, s.buffer_pool, count (*) buffer
from dba_objects o, v $ bh b, dba_segments s
where b.objd = o.data_object_id
and o.owner = 'U 2'
and o.object_name = s.segment_name
and o.object_type = s.segment_type
group by o.owner, o.object_name, o.object_type, o.status, s.buffer_pool
order by buffers;
OWNER
-------------------------------------------------------------------- ------------------------------
OBJECT_NAME
-------------------------------------------------------------------- ------------------------------
OBJECT_TYPE BUFFER_POOL
-------------------------------------------------------------------- ------- ---------------------
BUFFERS
----------
U2
TAB 002
TABLE DEFAULT
2042 ★ ★ <<<<<<<<<<<<<<<<<< data got into the cache.
select o.owner, o.object_name, o.object_type, s.buffer_pool, count (*) buffer
from dba_objects o, v $ bh b, dba_segments s
where b.objd = o.data_object_id
and o.owner = 'U3'
and o.object_name = s.segment_name
and o.object_type = s.segment_type
group by o.owner, o.object_name, o.object_type, o.status, s.buffer_pool
order by buffers;
A record was not selected.
[Oracle]跨越 DBLINK 访问表时,数据缓存在何处的Data Buffer 中?的更多相关文章
- jQuery源码解读 - 数据缓存系统:jQuery.data
jQuery在1.2后引入jQuery.data(数据缓存系统),主要的作用是让一组自定义的数据可以DOM元素相关联——浅显的说:就是让一个对象和一组数据一对一的关联. 一组和Element相关的数据 ...
- [Oracle]跨DBLINK的JOIN查询的数据库缓存问题15783452141
客户问到跨DBLINK,结合本地表和远端表的时候,数据在哪一边 的 Data Buffer 缓存. 测试的结果是:本地表在本地缓存,远端表在远端缓存. ####Testcase-0929-10 本地数 ...
- 【菜鸟学习jquery源码】数据缓存与data()
前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...
- jQuery1.9.1源码分析--数据缓存Data模块
jQuery1.9.1源码分析--数据缓存Data模块 阅读目录 jQuery API中Data的基本使用方法介绍 jQuery.acceptData(elem)源码分析 jQuery.data(el ...
- jQuery数据缓存data(name, value)详解及实现
一. jQuery数据缓存的作用 jQuery数据缓存的作用在中文API中是这样描述的:“用于在一个元素上存取数据而避免了循环引用的风险”.如何理解这句话呢,看看我下面的举例,不知道合不合适,如果你有 ...
- jquery源码解析:jQuery数据缓存机制详解2
上一课主要讲了jQuery中的缓存机制Data构造方法的源码解析,这一课主要讲jQuery是如何利用Data对象实现有关缓存机制的静态方法和实例方法的.我们接下来,来看这几个静态方法和实例方法的源码解 ...
- jQuery数据缓存$.data 的使用以及源码解析
一.实现原理: 对于DOM元素,通过分配一个唯一的关联id把DOM元素和该DOM元素的数据缓存对象关联起来,关联id被附加到以jQuery.expando的值命名的属性上,数据存储在全局缓存对象jQu ...
- Java的运行时数据存储机制
原文地址:http://yanwushu.sinaapp.com/java_data_storage/ Java程序在运行时需要为一系列的值或者对象分配内存,这些值都存在什么地方?用什么样的数据结构存 ...
- 利用js对象将iframe数据缓存, 实现子页面跳转后, 返回时不丢失之前填写的数据
利用js对象将iframe数据缓存, 实现子页面跳转后, 返回时不丢失之前填写的数据 实现描述:将数据存放在js对象中, 然后放在父页面的document对象中, 在页面刷新的时候将父页面的值取出来, ...
随机推荐
- ionic安卓tab栏跑到顶部
安卓下的ionic的tab会在顶部显示,而不是在底部 解决办法如下: 在app.js文件中的.config代码块里中添加以下代码: 注意依赖注入$ionicConfigProvider $ionicC ...
- 大数据【五】Hive(部署;表操作;分区)
一 概述 就像我们所了解的sql一样,Hive也是一种数据仓库,不同的是hive是在hadoop大数据生态圈中所用.这篇博客我主要介绍Hive的简单表运用. Hive是Hadoop 大数据生态圈中的数 ...
- localStorage/cookie 用法分析与简单封装
本地存储是HTML5中提出来的概念,分localStorage和sessionStorage.通过本地存储,web应用程序能够在用户浏览器中对数据进行本地的存储.与 cookie 不同,存储限制要大得 ...
- MapReduce文件配置和测试
1.前提:MapReduce能配置的前提是hdfs能够正常运行 2.在1的基础上,配置两个文件: 在hadoop文件夹下配置两个文件mapred-site.xml(由mapred-site.xm ...
- leveldb源码分析--SSTable之TableBuilder
上一篇文章讲述了SSTable的格式以后,本文结合源码解析SSTable是如何生成的. void TableBuilder::Add(const Slice& key, const Slice ...
- c#为字段设置默认值,以及构造函数初始化List对象。
1.为字段设置默认值 /// <summary> /// 默认值 /// </summary> ; ; /// <summary> /// 页的大小 /// < ...
- Linux 补丁生成与使用
我们在升级Linux 内核的时候,难免会接触到补丁的知识.下面对如何生成补丁和如何打补丁作讲解. 生成补丁: 制作 hello.c 和 hello_new.c 两个文件如如下所示. ➜ diff ls ...
- Nginx实践--安全升级
之前写了一些nginx的东西,这次继续,主要使用upstream针对proxy_pass转发做个处理 一般情况下我们在使用nginx反向代理的时候,都是如下配置, ... location /api ...
- jquery1.9 下检测浏览器类型和版本的方法
Jquery1.9版本中$.browser已被剔除: 判断浏览器类型: 复制代码 代码如下: $.browser.mozilla = /firefox/.test(navigator.userAgen ...
- Netty入门(九)空闲连接以及超时
检测空闲连接和超时是为了及时释放资源.常见的方法是发送消息来测试一个不活跃的连接,通常称为“心跳”. Netty 提供了几个 ChannelHandler 来实现此目的,如下: 下面是 IdleSta ...