Oracle数据库链接建立技巧与实例讲解 360Oracle数据运维

上传人:飞*** 文档编号:39927966 上传时间:2018-05-21 格式:DOCX 页数:4 大小:19.78KB
返回 下载 相关 举报
Oracle数据库链接建立技巧与实例讲解 360Oracle数据运维_第1页
第1页 / 共4页
Oracle数据库链接建立技巧与实例讲解 360Oracle数据运维_第2页
第2页 / 共4页
Oracle数据库链接建立技巧与实例讲解 360Oracle数据运维_第3页
第3页 / 共4页
Oracle数据库链接建立技巧与实例讲解 360Oracle数据运维_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Oracle数据库链接建立技巧与实例讲解 360Oracle数据运维》由会员分享,可在线阅读,更多相关《Oracle数据库链接建立技巧与实例讲解 360Oracle数据运维(4页珍藏版)》请在金锄头文库上搜索。

1、数据库链接(DATABASE LINK)是在分布式环境下,为了访问远程数据库而创建的数据通信 链路。数据库链接隐藏了对远程数据库访问的复杂性。通常,我们把正在登录的数据库称 为本地数据库,另外的一个数据库称为远程数据库。有了数据库链接,可以直接通过数据 库链接来访问远程数据库的表。常见的形式是访问远程数据库固定用户的链接,即链接到 指定的用户,创建这种形式的数据库链接的语句如下:, U A 7 C. t2 CREATE DATABASE LINK 链接名 CONNECT TO 账户 IDENTIFIED BY 口令 Q. a( Y3 W“ o( a! R# i n/ f( o- J9 U) E

2、4 o/ b! R; zUSING 服务名;/ k9 X l/ q b! 8 S1 D$ b3 m% b, c: c创建数据库链接,需要 CREATE DATABASE LINK 系统权限。( I. P$ z* A3 G( B, E/ F# E1 a! b, ( m* X. v* R, F% ( j+ + D! O9 F9 j数据库链接一旦建立并测试成功,就可以使用以下形式来访问远程用户的表。表名数据库链接名% I4 M$ L5 I, i4 g( K例:在局域网上创建和使用数据库链接。- D: s6 ( a( I; Z( N$ _步骤 1:创建远程数据库的服务名,假定局域网上另一个数据库服务名

3、为 MYDB_REMOTE。3 j; i0 V+ + X6 H! v步骤 2:登录本地数据库 SCOTT 账户,创建数据库链接:- i: Q7 d$ h7 z ECONNECT SCOTT/TIGERMYDB% m! s% r! S8 p! d/ t; u% C. P w3 D7 P6 n; vCREATE DATABASE LINK abc CONNECT TO scott IDENTIFIED BY tiger USING MYDB_REMOTE;9 P* _* W/ a“ H* U4 A0 4 0 u1 h执行结果为:数据库链接已创建。3 r( W1 K p0 U7 U3 8 K* ?;

4、 5 V9 * ?/ M) R! i- l$ O结果略。0 0 y“ B |( W3 g“ c) p# p3 h步骤 4:一个分布查询:SELECT ename,dname FROM empabc e,dept d WHERE e.deptno=d.deptno;7 d: Q D# P! F L; 结果略。说明:在本例中,远程数据库服务名是 MYDB_REMOTE,创建的数据库链接名称是 abc.empabc 表示远程数据库的 emp 表。步骤 4 是一个联合查询,数据来自本地服务器 的 dept 表和远程服务器的 emp 表。如果编程人员要在一个表中查找许多行,结果中的每 个行都会查找其他表

5、中的数据,最后,编程人员创建了独立的 UPDATE 命令来成批地更 新第一个表中的数据。与此类似的任务可以通过在 set 子句中使用多列子查询而在一个 UPDATE 命令中完成。当能够在单一的 SQL 命令中完成任务,何必要让数据在网上流来 流去的?建议用户认真学习如何最大限度地发挥 SQL 的功能。) ) J% - W# R$ F5 “ h0 GOracle 数据库链接时的一些技巧和实例子讲解1 f, n8 Z% M0 7 T: J2 S# v( F r通常在系统中会为常用的对象预定义了一些同义词,利用它们可以方便地访问用户的 常用对象。而在客户端软件开发中使用 Thin 驱动程序,在开发

6、Java 软件方面,Oracle 的 数据库中提供了四种类型的驱动程序,二种用于应用软件、applets、servlets 等客户端软 件,另外二种用于数据库中的 Java 存储过程等服务器端软件。在客户机端软件的开发中, 我们可以选择 OCI 驱动程序或 Thin 驱动程序。OCI 驱动程序利用 Java 本地化接口(JNI), 通过 Oracle 客户端软件与数据库进行通讯。Thin 驱动程序是纯 Java 驱动程序,它直接与 数据库进行通讯。为了获得最高的性能,Oracle 建议在客户端软件的开发中使用 OCI 驱动 程序,这似乎是正确的。但我建议使用 Thin 驱动程序,因为通过多次测

7、试发现,在通常情 况下, Thin 驱动程序的性能都超过了 OCI 驱动程序。 P B% J/ Y3 d+ * b* Y4 K. 7 t8 B5 % 值得注意的是,一旦关闭了自动提交功能,我们就需要通过调用 Connection 类的 commit()和 rollback()方法来人工的方式对事务进行管理。$ v7 |% B; |/ T# P$ I$ i1) Statement 对象的使用9 |% B# B, U: h7 数据库链接时不可缺的是 Statement 对象,Statement 对象是 JDBC 程序设计中非常 重要的对象,它包含了 SQL 语句的查询和更新的操作,通过 State

8、ment 对象可以完成对 数据库的查询和更新操作,可以这样理解:Statement 对象是操作数据库数据的载体。在 执行 SQL 命令时,我们有二种选择:可以使用 PreparedStatement 对象,也可以使用 Statement 对象。无论多少次地使用同一个 SQL 命令,PreparedStatement 都只对它解析 和编译一次。当使用 Statement 对象时,每次执行一个 SQL 命令时,都会对它进行解析 和编译。这可能会使你认为,使用 PreparedStatement 对象比使用 Statement 对象的速度 更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。

9、因此,在有时间限制 的 SQL 操作中,除非成批地处理 SQL 命令,我们应当考虑使用 Statement 对象。4 H# d* k( e“ Q O/ I! t) Z; Q在一个表不要加太多索引,因为索引影响成批插入和更新的速度。Oracle 提供的 Statement 和 CallableStatement 并不真正地支持批处理,只有 PreparedStatement 对象 才真正地支持批处理。我们可以使用 addBatch()和 executeBatch()方法选择标准的 JDBC 批处理,或者通过利用 PreparedStatement 对象的 setExecuteBatch()方法和

10、标准的 executeUpdate()方法选择速度更快的 Oracle 专有的方法。调用 setExecuteBatch()时指定的值是一个上限,当达到该值时,就会自动地引发 SQL 命令执行,标准的 executeUpdate()方法就会被作为批处理送到数据库中。我们可以 通过调用 PreparedStatement 类的 sendBatch()方法随时传输批处理任务。- K p“ 7 I: K0 b, M0 i Q成批的处理插入和更新的例子:$ m # F- A, G4 q6 T5 gQuery Plan SELECT STATEMENTCHOOSE Cost=26 6 A ?/ H8 j

11、. y E) D: d5 t“ . 9 z, F4 F用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它,当调 用存储过程时,我们可以使用 SQL92 或 Oracle PL/SQL,由于使用 Oracle PL/SQL 并没 有什么实际的好处,而且会给以后维护你的应用程序的开发人员阿带来麻烦,因此,我建 议在调用存储过程时使用 SQL92。可以将 Oracle 的数据库作为一种面向对象的数据库来 使用,就可以考虑将应用程序中的面向对象模式转到数据库中。对象模式和关系模式之间 在发展时可能存在的不协调性会使得这种同步变得十分地复杂。如果利用 Oracle 的面向对 象的技术,可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作,然后使 用 JPublisher 等工具生成自己的 Java bean 类。如果使用这种方式,不但 Java 应用程序 可以使用应用软件的对象模式,其他需要共享你的应用中的数据和操作的应用软件也可以 使用应用软件中的对象模式。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号