ORACLE跨服务器访问数据库

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• SQL>select * from emp@beijing; 这样就可以把深圳和北京scott用户的数据做 成一个整体来处理。 建立同义词,为了使有关分布式操作更透明, ORACLE数据库里有同义词的对象 synonym SQL>create synonym bjscottemp for emp@beijing; 于是就可以用bjscottemp来替代带@符号的 分布式链接操作emp@beijing。
设置具体有两种
• 第一种: • 1.根据远端的信息用Net Manager设置好能 连接远端的服务及监听程序。 • 2.create public database link fwq12 • connect to fzept identified by neu • using 'fjept' //fjept为刚刚配置好的服务名
• 首先Oracle可以将外层的查询条件推到内层查询 中,以提高内层查询的执行效率。对于第一个查 询语句,第二层的查询条件WHERE ROWNUM <= 40就可以被Oracle推入到内层查询中,这样 Oracle查询的结果一旦超过了ROWNUM限制条 件,就终止查询将结果返回了。 • 其次第二个语句,由于查询条件BETWEEN 21 AND 40是存在于查询的第三层,而Oracle无法将 第三层的查询条件推到最内层(即使推到最内层 也没有意义,因为最内层查询不知道RN代表什 么)。因此,对于第二个语句,Oracle最内层返 回给中间层的是所有满足条件的数据,而中间层 返回给最外层的也是所有数据。数据的过滤在最 外层完成,显然这个效率要比第一个查询低得多。
设置具体有两种
• 第二种: •
二、使用
• 查询远端数据库里的表 • SELECT …… FROM 表名@数据库链接名; • 查询、删除和插入数据和操作本地的数据库是一样的,只 不过表名需要写成“表名@dblink服务器”而已。 • 附带说下同义词创建: • CREATE SYNONYM同义词名FOR 表名; • CREATE SYNONYM同义词名FOR 表名@数据库链接名; • 删除dblink:DROP PUBLIC DATABASE LINK linkfwq。 • 假如创建全局dblink,则必须使用systm或sys用户,在 database前加public。
附带orac集大小,将结果尽快的返回。实现方法很多, 如:存储过程分页、利用ORACLE表分区等。这 里给大家介绍一种利用WHERE ROWNUM 进行 分页操作的实例。
• SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21
深入讲解"database link"的设 置和使用
database link是用来做什么的?
• database link,它是用来更方便的一个数据 库中访问另一个数据库(包括本地和远程 的,道理是一样的),一开始,很多人会 发生误解,其实是在本地建立的。即数据 库连接只是连到别的数据库的快捷方式。
• 这里最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。 ROWNUM <= 40和RN >= 21控制分页查询的每页 的范围。 • 上面给出的这个分页查询语句,在大多数情况拥有 较高的效率。分页的目的就是控制输出结果集大小, 将结果尽快的返回。在上面的分页查询语句中,这 种考虑主要体现在WHERE ROWNUM <= 40这句 上。
适用范围
• 适用范围:上面分析的查询不仅仅是针对 单表的简单查询,对于最内层查询是复杂 的多表联合查询或最内层查询包含排序的 情况一样有效。
下一期讲解内容
• 内联接外联接全联接join的用法 主要内容: 笛卡尔连接、交叉连接、相等连接 、内连 接 、不等连接 、自连接 、外连接 、全外 连接 、外连接的限制 等
• SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21
• 选择第21到40条记录存在两种方法:一种是上面 例子中展示的在查询的第二层通过ROWNUM <= 40来控制最大值,在查询的最外层控制最小值。 而另一种方式是去掉查询第二层的WHERE ROWNUM <= 40语句,在查询的最外层控制分页 的最小值和最大值。这是,查询语句如下: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A ) WHERE RN BETWEEN 21 AND 40 • 对比这两种写法,绝大多数的情况下,第一个查 询的效率比第二个高得多。其原因如下:
实例一
• SQL>create public database link beijing connect to scott identified by tiger using ‘tobeijing’; • 则创建了一个以scott用户和北京数据库的 链接beijing,我们查询北京的scott数据:
相关文档
最新文档