建立数据链路:
create database link NewLink
connect to Username identified by
password
using 'sidname '(网络sid,使用网络配置助手配置)
使用:
select * from tablename@NewLink
使用远程过程调用:
1) 创建引用远程数据表的本地过程
2) 创建由本地应用程序调用的远程过程
execute proc@linkname
规则:
过程的正确定位取决于数据的分布及数据的使用方式。
重点应放在将数据查询中通过网络传递的数据量最小化。
过程所在的数据库应含有进程操作中使用的大多数数据。
示例:
create procedure Luna(MY_EMP_NO IN NUMBER,
RAISE IN NUMBER)
as
begin
Update EMPLOYEE@HR_LINK
set Salary=Salary + Raise
where Empno=MY_EMP_NO
end ;
策略: 因为此过程只访问远程节点上的一个表,可考虑将
此进程移到远程数据库上,并且从进程的 from子句
中删除对这个数据库链接的引用。然后,通过使用
数据库链接从本地数据库调用该过程。
Execute MY_RAISE@HR_LINK (1234, 10000)
好处: 所有的进程处理均在包含操作数据的数据库中进行。
远程过程调用将把完成此进程处理所需要的网络流量
最小化.
简化: 创建同义词(SYNONYM)
create synonym Luna for Luna@HR_LINK
execute Luna(1234,10000)
create database link NewLink
connect to Username identified by
password
using 'sidname '(网络sid,使用网络配置助手配置)
使用:
select * from tablename@NewLink
使用远程过程调用:
1) 创建引用远程数据表的本地过程
2) 创建由本地应用程序调用的远程过程
execute proc@linkname
规则:
过程的正确定位取决于数据的分布及数据的使用方式。
重点应放在将数据查询中通过网络传递的数据量最小化。
过程所在的数据库应含有进程操作中使用的大多数数据。
示例:
create procedure Luna(MY_EMP_NO IN NUMBER,
RAISE IN NUMBER)
as
begin
Update EMPLOYEE@HR_LINK
set Salary=Salary + Raise
where Empno=MY_EMP_NO
end ;
策略: 因为此过程只访问远程节点上的一个表,可考虑将
此进程移到远程数据库上,并且从进程的 from子句
中删除对这个数据库链接的引用。然后,通过使用
数据库链接从本地数据库调用该过程。
Execute MY_RAISE@HR_LINK (1234, 10000)
好处: 所有的进程处理均在包含操作数据的数据库中进行。
远程过程调用将把完成此进程处理所需要的网络流量
最小化.
简化: 创建同义词(SYNONYM)
create synonym Luna for Luna@HR_LINK
execute Luna(1234,10000)