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

目录
相关文章
|
2月前
|
SQL Oracle 关系型数据库
Oracle 将表中的数据查出更改某一字段的值后再插入该表
Oracle 将表中的数据查出更改某一字段的值后再插入该表
31 2
|
2月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
30 2
|
2月前
|
SQL Oracle 关系型数据库
Oracle查询优化-查询只包含数字或字母的数据
【2月更文挑战第4天】【2月更文挑战第10篇】查询只包含数字或字母的数据
81 1
|
3月前
|
Oracle 关系型数据库
Oracle查询优化-从表中随机返回N条数据
【1月更文挑战第2天】【1月更文挑战第5篇】有些场景需要抽验数据,例如为了防止做假或者抽检行为,就需要随机抽查。
41 0
|
4月前
|
存储 缓存 分布式计算
亿级数据如何分钟级别写入缓存?
亿级数据如何分钟级别写入缓存?
29 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle之如何限制字段内数据的录入
Oracle之如何限制字段内数据的录入
40 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle之如何从表中随机取出一些数据
Oracle之如何从表中随机取出一些数据
64 0
|
3月前
|
Oracle 关系型数据库 数据库
Oracle查询优化-复制表的定义及数据
【1月更文挑战第5天】【1月更文挑战第14篇】在Oracle数据库中,复制表定义和复制表数据是两个常见的操作。
49 1
|
3月前
|
Oracle 关系型数据库 Java
这个错误是由于在尝试从 Oracle 数据库的 socket 中读取数据时,没有更多的数据可供读取
这个错误是由于在尝试从 Oracle 数据库的 socket 中读取数据时,没有更多的数据可供读取
48 2
|
1月前
|
SQL Oracle 关系型数据库
Oracle insert数据时字符串中有‘单引号问题
Oracle insert数据时字符串中有‘单引号问题

相关实验场景

更多

推荐镜像

更多