WEB开发网
开发学院数据库Oracle Oracle数据库体系框架及SQL语句性能探讨 阅读

Oracle数据库体系框架及SQL语句性能探讨

 2007-05-06 12:07:02 来源:WEB开发网   
核心提示: 在无法改变客户的业务规则的情况下,我们考虑影响应用系统性能的先后顺序应该是: 首先,考虑SQL语句的性能; 其次,Oracle数据库体系框架及SQL语句性能探讨(3),考虑内存的分配; 第三,CPU的使用分配和磁盘I/O瓶颈; 第四, 对于未排序的表,读取少于表记录数7%的查询应该使用索引

在无法改变客户的业务规则的情况下,我们考虑影响应用系统性能的先后顺序应该是:

首先,考虑SQL语句的性能;

其次,考虑内存的分配;

第三,CPU的使用分配和磁盘I/O瓶颈;

第四,考虑网络因素;

第五,考虑操作系统因素;

等等……

由此可以说,一个基于数据库的应用系统性能的好坏,首先是应用系统设计人员、应用系统开发人员的责任,而数据库管理员(DBA)是在其基础上进行的性能调整。80%的性能问题都是由不良的SQL语句引起的。设计和建立最佳的SQL对于系统的可扩展性和响应时间是基本工作。下面,我主要就SQL语句的性能进行一些粗浅的探讨,希望能起到抛砖引玉的效果。

SQL语句性能调整的目标是:

去掉不必要的大表全表扫描 不必要的大表全表扫描会造成不必要的输入输出,而且还会拖垮整个数据库;

检查优化索引的使用 这对于提高查询速度来说非常重要

检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写;

调整PCTFREE和PCTUSED等存储参数优化插入、更新或者删除等操作;

考虑数据库的优化器;

考虑数据表的全表扫描和在多个CPU的情况下考虑并行查询。

一、 索引(INDEX)使用的问题

1. 索引(INDEX),用还是不用?这是个的问题。

是全表扫描还是索引范围扫描主要考虑SQL的查询速度问题。这里主要关心读取的记录的数目。根据DONALD K .BURLESON的说法,使用索引范围扫描的原则是:

对于数据有原始排序的表,读取少于表记录数40%的查询应该使用索引范围扫描。对读取多于表记录数40%的查询应全表扫描。

对于未排序的表,读取少于表记录数7%的查询应该使用索引范围扫描,反之,对读取多于表记录数7%的查询应全表扫描。

上一页  1 2 3 4  下一页

Tags:Oracle 数据库 体系

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