Oracle性能调整的方案的描述

数据库 Oracle
以下的文章主要描述的是Oracle性能调整的方案的描述,如果你对Oracle性能调整的实际操作有兴趣了解的话,你就可以点击以下的文章。

Oracle性能调整可以说是一个十分复杂的主题。Oracle性能调整的实际操作的内容毫不夸张的说能写一本书,但是,我们在实际操作中为了对Oracle数据库的性能进行改善的话,有一些基本概念是每个Oracle DBA都应该遵从的。

在这篇简介中,我们将简要地介绍以下的Oracle主题:

外部调整:我们应该记住Oracle并不是单独运行的。因此我们将查看一下通过调整Oracle服务器以得到高的性能。

Row re-sequencing以减少磁盘I/O:我们应该懂得Oracle调优最重要的目标是减少I/O。

Oracle SQL调整:Oracle SQL调整是Oracle调整中最重要的领域之一,只要通过一些简单的SQL调优规则就可以大幅度地提升SQL语句的性能,这是一点都不奇怪的。--调整Oracle排序:排序对于Oracle性能也是有很大影响的。

我们首先从调整Oracle外部的环境开始。如果内存和CPU的资源不足的话,任何的Oracle调整都是没有帮助的。

Oracle性能调整秘密:外部的性能问题

Oracle并不是单独运行的。Oracle数据库的性能和外部的环境有很大的关系。这些外部的条件包括有:

● CPU--CPU资源的不足令查询变慢。当查询超过了Oracle服务器的CPU性能时,你的数据库性能就受到CPU的限制。

● 内存--可用于Oralce的内存数量也会影响SQL的性能,特别是在数据缓冲和内存排序方面。

● 网络--大量的Net8通信令SQL的性能变慢。

许多新手都错误的认为应该首先调整Oracle数据库,而不是先确认外部资源是否足够。实际上,如果外部环境出现瓶颈,再多的Oracle调整都是没有帮助的。

在检查Oracle的外部环境时,有两个方面是需要注意的:

1、当运行队列的数目超过服务器的CPU数量时,服务器的性能就会受到CPU的限制。补救的方法是为服务器增加额外的CPU或者关闭需要很多处理资源的组件,例如Oracle Parallel Query。

2、内存分页。当内存分页时,内存容量已经不足,而内存页是与磁盘上的交换区进行交互的。补救的方法是增加更多的内存,减少Oracle SGA的大小,或者关闭Oracle的多线程服务器。

可以使用各种标准的服务器工具来得到服务器的统计数据,例如vmstat,glance,top和sar。DBA的目标是确保数据库服务器拥有足够的CPU和内存资源来处理Oracle的请求。

以下让我们来看一下Oracle的row-resequencing是如何能够极大地减少磁盘I/O的。

Row-resequencing(行的重新排序)

就象我们上面提到的,有经验的Oracle DBA都知道I/O是响应时间的***组成部分。其中磁盘I/O特别厉害,因为当Oracle由磁盘上的一个数据文件得到一个数据块时,读的进程就必须等待物理I/O操作完成。磁盘操作要比数据缓冲慢10,000倍。因此,如果可以令I/O最小化,或者减少由于磁盘上的文件竞争而带来的瓶颈,就可以大大地改善Oracle数据库的性能。

如果系统响应很慢,通过减少磁盘I/O就可以有一个很快的改善。如果在一个事务中通过按一定的范围搜索primary-key索引来访问表,那么重新以CTAS的方法组织表将是你减少I/O的首要策略。通过在物理上将行排序为和primary-key索引一样的顺序,就可以加快获得数据的速度。

就象磁盘的负载平衡一样,行的重新排序也是很简单的,而且也很快。通过与其它的DBA管理技巧一起使用,就可以在高I/O的系统中大大地减少响应的时间。

在高容量的在线事务处理环境中(online transaction processing,OLTP),数据是由一个primary索引得到的,重新排序表格的行就可以令连续块的顺序和它们的primary索引一样,这样就可以在索引驱动的表格查询中,减少物理I/O并且改善响应时间。

这个技巧仅在应用选择多行的时候有用,或者在使用索引范围搜索和应用发出多个查询来得到连续的key时有效。对于随机的唯一primary-key(主键)的访问将不会由行重新排序中得到好处。

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

 

  1. select  
  2. salary  
  3. from  
  4. employee  
  5. where  
  6. last_name like 'B%';  

 

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

以上的相关内容就是对Oracle性能调整秘密的介绍,望你能有所收获。

【编辑推荐】

  1. Oracle通过存储过程如何正确返回数据集?
  2. Oracle提高SQL执行效率的3种实用方案简介
  3. Oracle redo的条目主要包含的内容
  4. Oracle spatial空间数据表初始化的实际操作
  5. 如何正确对Oracle database link进行布式

 

责任编辑:佚名 来源: 互联网
相关推荐

2010-04-22 10:30:11

Oracle RAC

2011-03-21 11:14:21

Oracle性能调整

2010-04-26 13:47:02

Oracle性能调整

2010-04-13 16:08:24

Oracle数据插入

2010-04-07 16:54:55

Oracle性能

2009-02-01 10:45:18

Oracle数据库性能调整

2011-04-08 17:33:07

Oracle性能

2010-04-07 16:02:29

Oracle性能

2010-04-23 16:18:36

Oracle存取

2010-04-06 12:48:12

Oracle性能

2010-04-06 09:48:33

Oracle性能

2010-04-19 13:37:57

Oracle调整

2010-04-19 17:09:30

Oracle sql

2010-04-12 17:38:51

Oracle性能调整

2010-04-12 11:02:28

Oracle性能

2010-04-20 15:30:58

Oracle sql

2010-04-07 17:04:49

Oracle性能

2011-05-25 13:55:02

Oracle

2011-05-25 14:35:47

Oracle缓冲区调整性能

2010-04-20 15:41:38

Oracle sql
点赞
收藏

51CTO技术栈公众号