[Oracle]跨DBLINK的JOIN查询的数据库缓存问题15783452141
客户问到跨DBLINK,结合本地表和远端表的时候,数据在哪一边 的 Data Buffer 缓存。
测试的结果是:本地表在本地缓存,远端表在远端缓存。
####Testcase-0929-10
本地数据库: 远端数据库:
TABXXX TABYYY
=============
本地数据库:
conn user003/user003
create table TABXXX(id integer, val varchar2(3));
insert into TABXXX values(1,'100');
insert into TABXXX values(2,'200');
insert into TABXXX values(3,'300');
commit;
=============
远端数据库:
conn user002/user002
create table TABYYY(id integer, val varchar2(3));
insert into TABYYY values(2,'200');
insert into TABYYY values(3,'300');
insert into TABYYY values(4,'400');
commit;
=============
本地数据库:
shu immediate
startup
conn user003/user003
create public database link dbk connect to user002 identified by user002 using 'remote';
查询前检查Buffer:
conn / as sysdba
select o.owner,o.object_name,o.object_type,s.buffer_pool,count(*) buffers
from dba_objects o,v$bh b,dba_segments s
where b.objd=o.data_object_id
and o.owner = 'user002'
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;
select o.owner,o.object_name,o.object_type,s.buffer_pool,count(*) buffers
from dba_objects o,v$bh b,dba_segments s
where b.objd=o.data_object_id
and o.owner = 'user003'
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;
=============
远端数据库:
查询前检查Buffer:
shu immediate
startup
conn / as sysdba
select o.owner,o.object_name,o.object_type,s.buffer_pool,count(*) buffers
from dba_objects o,v$bh b,dba_segments s
where b.objd=o.data_object_id
and o.owner = 'user002'
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;
select o.owner,o.object_name,o.object_type,s.buffer_pool,count(*) buffers
from dba_objects o,v$bh b,dba_segments s
where b.objd=o.data_object_id
and o.owner = 'user003'
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;
=============
本地数据库:
执行查询:
conn user003/user003
select a.id,b.value from TABXXX a, TABYYY@dbk b where a.id=b.id;
查询后检查缓存: <<<<<<<<<<<<<<<<<< 本地表在本地缓存,本地没有远端表的缓存内容
conn / as sysdba
select o.owner,o.object_name,o.object_type,s.buffer_pool,count(*) buffers
from dba_objects o,v$bh b,dba_segments s
where b.objd=o.data_object_id
and o.owner = 'user002'
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;
no records found
select o.owner,o.object_name,o.object_type,s.buffer_pool,count(*) buffers
from dba_objects o,v$bh b,dba_segments s
where b.objd=o.data_object_id
and o.owner = 'user003'
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
----------
user003
TABXXX
TABLE DEFAULT
7
SQL>
=============
远端数据库:
查询后检查缓存: <<<<<<<<<<<<<<<<<< 远端表在远端缓存,远端数据库那边,没有本地表的缓存内容
conn / as sysdba
select o.owner,o.object_name,o.object_type,s.buffer_pool,count(*) buffers
from dba_objects o,v$bh b,dba_segments s
where b.objd=o.data_object_id
and o.owner = 'user002'
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
----------
user002
TABYYY
TABLE DEFAULT
14
SQL>
select o.owner,o.object_name,o.object_type,s.buffer_pool,count(*) buffers
from dba_objects o,v$bh b,dba_segments s
where b.objd=o.data_object_id
and o.owner = 'user003'
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;
no records found
[Oracle]跨DBLINK的JOIN查询的数据库缓存问题15783452141的更多相关文章
- 一条SQL完成跨数据库实例Join查询
背景 随着业务复杂程度的提高.数据规模的增长,越来越多的公司选择对其在线业务数据库进行垂直或水平拆分,甚至选择不同的数据库类型以满足其业务需求.原本在同一数据库实例里就能实现的SQL查询,现在需要跨多 ...
- ORACLE跨数据库查询的方法
原文地址:http://blog.csdn.net/huzhenwei/article/details/2533869 本文简述了通过创建database link实现Oracle跨数据库查询的方法 ...
- oracle使用dblink跨库查询的例子
本文介绍了oracle数据库使用dblink进行跨库查询的方法,oracle dblink跨库查询教程,需要的朋友参考下. oracle dblink跨库查询 方法一:首先,创建数据库链接: 复制 ...
- Oracle 跨库 查询 复制表数据 分布式查询
方法一: 在眼下绝大部分数据库有分布式查询的须要.以下简单的介绍怎样在oracle中配置实现跨库訪问. 比方如今有2个数据库服务器,安装了2个数据库.数据库server A和B.如今来实如今A库中訪问 ...
- Oracle 跨库 查询 复制表数据
在目前绝大部分数据库有分布式查询的需要.下面简单的介绍如何在oracle中配置实现跨库访问. 比如现在有2个数据库服务器,安装了2个数据库.数据库server A和B.现在来实现在A库中访问B的数据库 ...
- 2020-07-07:mysql如何实现跨库join查询?
福哥答案2020-07-07: 1.同服务跨库.表名称带上库名.SELECT * FROM 数据库名称1.表名称 JOIN 数据库名称2.表名称 ON 数据库名称1.表名称.tid = 数据库名称2. ...
- oracle 跨分区查询效率,Oracle分区表做跨分区查询
问:有一张大表,其中按时间字段(TIME_ID)进行表分区(按季度分区),但是如果业务人员做跨季度的大批量数据的查询时,未能走TIME_ID分区索引,导致全表扫描.此种情况该如何处理? 示例解析: 1 ...
- oracle跨库连接查询
一.授权(本地客户器端授权当前用户) grant create database link to szfile 第一种连接方法:配置本地数据库服务器的tnsnames.ora文件 SZFILE = ( ...
- Oracle 跨库查询表数据(不同的数据库间建立连接)
1.情景展示 当需要从A库去访问B库中的数据时,就需要将这两个库连接起来: 两个数据库如何实现互联互通,在oracle中,可以通过建立DBLINK实现. 2.解决方案 2018/12/05 第一步 ...
随机推荐
- Vue父组件接收不到子组件$emit事件的原因分析
通常有两种情况: 事件名称不全是小写.事件名称要求全小写. 不是父子关系.这里的父子关系是严格的父子关系,祖孙关系也不行.只能一层一层触发,这在写树形组件时,很容易掉坑里.
- SDK Manager
dx.bat :将所有的.class文件变成一个.dex文件. aapt:Android Application package tools 安卓应用的打包工具. adb:Android Debug ...
- C#操作Exchange配置
1.客户端配置:运行gpedit.msc进入本地组策略管理器,计算机配置>管理模版>Windows组件>WinRM>WinRM客户端启用允许未加密通信:启用受信任的主机并添加e ...
- 字符串通过在配置文件配置三个key来进行加密解密
在这里和大家分享一个加密util,相对于md5加密相信大家都已经很熟悉了吧,md5是不可逆的一种加密方式,虽说不可逆但是网上已经有了破解的方法,我这边分享一个免费的破解 网址给大家:https://w ...
- January 12th, 2018 Week 02nd Friday
Nothing behind me, everything ahead of me, as is ever so on the road. 我的身后空空荡荡,整个世界都在前方,这就是在路上. That ...
- January 04th, 2018 Week 01st Thursday
Just do what works for you, because there will always be someone who think differently. 就做你自己所能做的,因为 ...
- Alpha冲刺! Day1 - 磨刀
Alpha冲刺! Day1 - 磨刀 序章 Alpha冲刺开始的比印象中的计划早,翻回去看系统设计那篇作业博客的实践时间安排表格发现不!见!了!! 因为计划提前,但又必须在编码开始之前把所有逻辑讨论清 ...
- 17秋 软件工程 团队第五次作业 Alpha Scrum2
17秋 软件工程 团队第五次作业 Alpha Scrum2 今日完成的任务 杰麟:Java后端的学习: 世强:登录和注册接口编写: 港晨:完成数据库表的设计: 树民.陈翔:完成超级管理员后端框架. 其 ...
- FusionCharts参数说明——3D饼图属性(Pie3D.swf )
animation 是否显示加载图表时的动画palette 内置的图表样式,共5个paletteColors 自定义图表元素颜色(为多个,如过过少会重复)showAboutMenuItem 右键是否显 ...
- Django之知识总结
1. 课程介绍 - 数据类型 - 函数 - 面向对象三大特性:继承,封装,多态 - socket:本质传输字节:所有网络通信都基于socket - 数据库设计:单表.FK.M2M (自己作业:自己领域 ...