WEB开发网
开发学院数据库Oracle Oracle基于Client/Server的性能调整 阅读

Oracle基于Client/Server的性能调整

 2007-05-12 12:26:33 来源:WEB开发网   
核心提示: (1) 用于连接的子句的列应被索引、在Where子句中应尽量利用索引,而不是避开索引,Oracle基于Client/Server的性能调整(8),(2) 连接操作应从返回较少行上驱动,(3) 如果所连接的表A和B,由于客户机、网络、服务器这3个相互依存的组成部分都必须调整和同步才能产生最佳

(1) 用于连接的子句的列应被索引、在Where子句中应尽量利用索引,而不是避开索引。

(2) 连接操作应从返回较少行上驱动。

(3) 如果所连接的表A和B,A表长度远远大于B表,建议从较大的A表上驱动。

(4) 如果Where子句中含有选择性条件,Where No=20,将最具有选择性部分放在表达式最后。

(5) 如果只有一个表有索引,另一表无索引,无索引的表通常作为驱动表。如A表的No列以被索引,而B表的No 列没被索引,则应当B表作为驱动表,A表作为被驱动表。

(6) 若用于连接的列和Where子句中其他选择条件列均有索引,则按各个索引对查询的有效性和选择性分别定出级别,结合表中具体数据构成情况,从中选出优化路径,一般需要考虑:子句中哪些列可以使用索引、哪些索引具有唯一性及被查询表行数目等。

3.2 建立和使用视图、索引

利用视图可以将基表中的列或行进行裁减、隐藏一部分数据,并且能够将涉及到多个表的复杂查询以视图的方式给出,使应用程序开发简洁快速。利用索引可以提高查询性能,减少磁盘 I/O,优化对数据表的查询,加速SQL语句的执行。但任何时候建立索引都能提高性能,何时建立索引应当遵循以下原则:该表常用来在索引列上查询,该表不常更新、插入、删除等操作,查询出来的结果记录数应控制在原表的2%~4%。

3.3 使用 Oracle 的数组接口

当一个客户应用程序插入一行或用一个查询来向服务器请求某行时,不是发送具有单个行的网络包,而是采用数组处理,即把要插入的多个行或检索出的多个行缓冲在数组中,然后通过很少的几个包就可在网上传送这些数组。例如,一个给定的Select语句返回2000行数据,每行平均大小为40个字节,数据包的大小为4kB,而数组大小参数(arraysize)设置为20 ,则需从服务器发送100个数据包到客户机。如果简单地把(arraysize)设置为2000,那么同样的操作只需要传送 20个数据包。这样就减少了网络的传输量,提高了所有应用的性能。

4 总结

我们在开发应用程序时,遵循上述的方法和原则,对系统进行调整,收到了令人满意的效果。但是应当指出,由于客户机、网络、服务器这3个相互依存的组成部分都必须调整和同步才能产生最佳的性能,因此还应根据系统的具体情况,具体分析和调整。

上一页  3 4 5 6 7 8 

Tags:Oracle 基于 Client

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接