WEB开发网
开发学院数据库Oracle Oracle专家调优秘密 阅读

Oracle专家调优秘密

 2006-08-05 11:58:45 来源:WEB开发网   
核心提示: 让我们看一下它是如何工作的,考虑以下的一个SQL的查询,Oracle专家调优秘密(3),它使用一个索引来得到100行:selectsalaryfromemployeewherelast_name like 'B%';这个查询将会使用last_name_index,搜索其中的

让我们看一下它是如何工作的。考虑以下的一个SQL的查询,它使用一个索引来得到100行:

select
salary
from
employee
where
last_name like 'B%';

这个查询将会使用last_name_index,搜索其中的每一行来得到目标行。这个查询将会至少使用100次物理磁盘的读取,因为employee的行存放在不同的数据块中。

不过,如果表中的行已经重新排序为和last_name_index的一样,同样的查询又会怎样处理呢?我们可以看到这个查询只需要三次的磁盘I/O就读完全部100个员工的资料(一次用作索引的读取,两次用作数据块的读取),减少了97次的块读取。

重新排序带来的性能改善的程度在于在你开始的时候行的乱序性如何,以及你需要由序列中访问多少行。至于一个表中的行与索引的排序键的匹配程度,可以查看数据字典中的dba_indexes和dba_tables视图得到。

在dba_indexes的视图中,查看clustering_factor列。如果clustering_factor的值和表中的块数目大致一样,那么你的表和索引的顺序是一样的。不过,如果clustering_factor 的值接近表中的行数目,那就表明表格中的行和索引的顺序是不一样的。

行重新排序的作用是不可以小看的。在需要进行大范围的索引搜索的大表中,行重新排序可以令查询的性能提高三倍。

一旦你已经决定重新排序表中的行,你可以使用以下的工具之一来重新组织表格。

. 使用Oracle的Create Table As Select (CTAS) 语法来拷贝表格

. Oracle9i自带的表格重新组织工具

以下,我们来看以下SQL语句的调优。

SQL调优

Oracle的SQL调优是一个复杂的主题,甚至是需要整本书来介绍Oracle SQL调优的细微差别。不过有一些基本的规则是每个Oracle DBA都需要跟从的,这些规则可以改善他们系统的性能。SQL调优的目标是简单的:

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 专家 秘密

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