简单谈谈Oracle SQL调优

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

Oracle还是比较常用的,于是我研究了一下Oracle SQL调优,在这里拿出来和大家分享一下,希望对大家有用。Oracle SQL调优是一个复杂的主题,甚至是需要整本书来介绍Oracle SQL调优的细微差别。不过有一些基本的规则是每个Oracle DBA都需要跟从的,这些规则可以改善他们系统的性能。SQL调优的目标是简单的:

◆消除不必要的大表全表搜索:不必要的全表搜索导致大量不必要的I/O,从而拖慢整个数据库的性能。调优专家首先会根据查询返回的行数目来评价 SQL。在一个有序的表中,如果查询返回少于40%的行,或者在一个无序的表中,返回少于7%的行,那么这个查询都可以调整为使用一个索引来代替全表搜索。对于不必要的全表搜索来说,最常见的调优方法是增加索引。可以在表中加入标准的B树索引,也可以加入bitmap和基于函数的索引。要决定是否消除一个全表搜索,你可以仔细检查索引搜索的I/O开销和全表搜索的开销,它们的开销和数据块的读取和可能的并行执行有关,并将两者作对比。在一些情况下,一些不必要的全表搜索的消除可以通过强制使用一个index来达到,只需要在SQL语句中加入一个索引的提示就可以了。

◆在全表搜索是一个最快的访问方法时,将小表的全表搜索放到缓存中,调优专家应该确保有一个专门的数据缓冲用作行缓冲。在Oracle7中,你可以使用alter table xxx cache语句,在Oracle8或以上,小表可以被强制为放到KEEP池中缓冲。

◆确保最优的索引使用:对于改善查询的速度,这是特别重要的。有时Oracle可以选择多个索引来进行查询,调优专家必须检查每个索引并且确保Oracle使用正确的索引。它还包括bitmap和基于函数的索引的使用。

◆确保最优的JOIN操作:有些查询使用NESTED LOOP join快一些,有些则是HASH join快一些,另外一些则是sort-merge join更快。

这些规则看来简单,不过它们占SQL调优任务的90%,并且它们也无需完全懂得Oracle SQL的内部运作。这里我们来简单概览一下Oracle SQL调优。

【编辑推荐】

  1. Oracle Spatial学习经验
  2. 高手谈论Oracle Spatial
  3. 全面概括Oracle数据类型
  4. 快速了解Oracle SQL语言
  5. 你是否了解Oracle Dual表
责任编辑:佚名 来源: IT168
相关推荐

2011-05-20 14:23:01

Oracle调优

2010-04-12 17:30:44

Oracle SQL调

2011-05-18 10:16:24

Oracle调优

2011-05-20 15:02:01

Oracle性能调优

2010-04-19 13:50:27

Oracle调整

2021-11-07 23:49:19

SQL数据库工具

2011-05-19 14:11:29

Oracle

2023-11-10 09:25:36

Oracle数据库

2019-09-25 15:09:30

MySQL索引SQL

2009-04-01 11:17:52

内存分配调优Oracle

2009-11-17 14:50:50

Oracle调优

2012-01-10 14:35:08

JavaJVM

2017-07-21 08:55:13

TomcatJVM容器

2017-11-17 08:56:59

Java性能优化技巧

2011-05-24 09:45:41

Oracle数据库系统调优

2009-11-05 10:03:25

Oracle调优NUMA架构

2011-03-02 10:01:15

2010-07-19 09:39:53

SQL Server

2010-07-19 13:35:51

SQL Server性

2011-01-21 08:38:20

点赞
收藏

51CTO技术栈公众号