[Oracle]跨越 DBLINK 访问表时,数据缓存在何处的Data Buffer 中?-阿里云开发者社区

开发者社区> 嗯哼9925> 正文

[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.






本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/p/7575226.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【中秋赏月】信手拈来一款中秋节日历提醒服务
关于这次中秋征文的内容,自己确实想了好久,因为作为一名后端研发工程师,不太想去搞一个酷炫的界面,感觉那是前端同学的蛋糕。想利用自己的技能优势,搞一波儿事情。同时又想有所创新,搞点别人没有搞过的,终于昨天确定了文章的内容——开发一款中秋节日历提醒服务,今天开始正式干活儿。
5 0
使用Golang语言实现对指定存储桶的删除方法(下)
上一篇文章《使用Golang语言实现对指定存储桶的删除方法(上)》中介绍了删除存储桶前的校验逻辑,今天就来看一看,具体删除存储桶时的逻辑处理。通过上下两篇文章的介绍基本上就把删除存储桶的底层源码实现讲清楚了。正文我们直接进入正题,当删除存储桶时,大概需要三个层逻辑。具体情况,我们接下来单独介绍。
3 0
同事写了一个update,误用一个双引号,生产数据全变0了!
一、前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程。
3 0
一条SQL查询语句是如何执行的?
还不知道SQL查询语句是如何执行的?看这篇,看不懂来打我吧
3 0
阿里云服务器Oracle开放1521端口教程(安全组配置)
在阿里云服务器上安装Oracle数据库,需要开放1521端口,在安全组设置即可开放云服务器1521端口
10 0
MyBatis 动态 SQL(认真看看, 以后写 SQL 就爽多了)
MyBatis 令人喜欢的一大特性就是动态 SQL。在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的。MyBatis 动态 SQL 的出现, 解决了这个麻烦。
5 0
搞定全局ID生成器:SpringBoot2.x 集成百度 uidgenerator
不成功,最后自己一步一步升级引入依赖,修改增加接口注入来源,最后成功。 升级成功后的源码地址
4 0
为什么 ConcurrentHashMap 的读操作不需要加锁?为什么 ConcurrentHashMap 的读操作不需要加锁?
为什么 ConcurrentHashMap 的读操作不需要我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢?加锁?为什么 ConcurrentHashMap 的读操作不需要加锁?
3 0
搞定全局ID生成器:SpringBoot2.x 集成百度 uidgenerator
不成功,最后自己一步一步升级引入依赖,修改增加接口注入来源,最后成功。 升级成功后的源码地址
3 0
+关注
4716
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载