zoukankan      html  css  js  c++  java
  • [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.

  • 相关阅读:
    程序员丨学习编程需要攻克这 8 个壁垒,解决后编程能力显著提升!
    编程不难学,方法最重要!学习编程语言最好的方法是什么?
    Navicat for MySQL怎么往表中填数据
    WinForm开发(1)——DataGridView控件(1)——C# DataGridView控件用法介绍
    【C#】图解如何添加引用using MySql.Data.MySqlClient;
    源代码管理工具(2)——SVN(2)——第一次用SVN遇到的问题
    源代码管理工具(1)——SVN(1)——SVN 的使用新手指南,具体到步骤详细介绍----TortoiseSVN
    C#取整函数Math.Round、Math.Ceiling和Math.Floor
    服务器(2)——IIS(2)——IIS Express(1)——IIS跟IIS Express之间的区别和关系
    C# 连接 Oracle 的几种方式
  • 原文地址:https://www.cnblogs.com/gaojian/p/7575226.html
Copyright © 2011-2022 走看看