[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,如需转载请自行联系原作者

目录
相关文章
|
Web App开发 存储 缓存
如何精准清除特定类型或标签的缓存数据?
如何精准清除特定类型或标签的缓存数据?
1079 57
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
存储 Oracle 关系型数据库
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
在YMP校验过程中,从yashandb同步至Oracle的数据出现timestamp(0)字段不一致问题。原因是yashandb的timestamp(x)存储为固定6位小数,而Oracle的timestamp(0)无小数位,同步时会截断yashandb的6位小数,导致数据差异。受影响版本:yashandb 23.2.7.101、YMP 23.3.1.3、YDS联调版本。此问题会导致YMP校验数据内容不一致。
|
存储 缓存 监控
一次缓存引发的文件系统数据不一致问题排查与深度解析
本文详述了一次由自研分布式文件系统客户端 EFC 的缓存架构更新所引发的严重数据不一致问题的完整排查过程。
一次缓存引发的文件系统数据不一致问题排查与深度解析
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
479 32
|
Oracle 关系型数据库 Java
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
本文介绍通过Flink CDC实现Oracle数据实时同步至崖山数据库(YashanDB)的方法,支持全量与增量同步,并涵盖新增、修改和删除的DML操作。内容包括环境准备(如JDK、Flink版本等)、Oracle日志归档启用、用户权限配置、增量日志记录设置、元数据迁移、Flink安装与配置、生成Flink SQL文件、Streampark部署,以及创建和启动实时同步任务的具体步骤。适合需要跨数据库实时同步方案的技术人员参考。
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
|
机器学习/深度学习 人工智能 缓存
MHA2MLA:0.3%数据微调!复旦团队开源推理加速神器,KV缓存狂降96.87%
MHA2MLA是复旦大学、华东师范大学、上海AI Lab等机构联合推出的数据高效微调方法,通过引入多头潜在注意力机制(MLA),显著优化基于Transformer的LLM推理效率,降低推理成本。
768 1
MHA2MLA:0.3%数据微调!复旦团队开源推理加速神器,KV缓存狂降96.87%
|
存储 Oracle 关系型数据库
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
|
Oracle 关系型数据库 Linux
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常
|
SQL Oracle 关系型数据库
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差

推荐镜像

更多