调整数据库结构的设计
这一部分在开发信息系统之前完成,需要考虑是否使用Oracle数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
调整数据库SQL语句
应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了Oracle数据库的性能。 Oracle公司推荐使用Oracle语句优化器(Oracle Optimizer)和行锁管理器(Row-Level Manager)来调整优化SQL语句。
二、调整应用程序的SQL
1. 不要进行全表扫描(Full Table Scan):全表扫描导致大量的I/O
2. 尽量建好和使用好索引:
建索引也是有讲究的,在建索引时,也不是索引越多越好,当一个表的索引达到4个以上时,ORACLE的性能可能还是改善不了,因为OLTP系统每表超过5个索引即会降低性能,而且在一个sql 中, Oracle 从不能使用超过 5个索引;当我们用到GROUP BY和ORDER BY时,ORACLE就会自动对数据进行排序,而ORACLE在INIT.ORA中决定了sort_area_size区的大小,当排序不能在我们给定的排序区完成时,ORACLE就会在磁盘中进行排序,也就是我们讲的临时表空间中排序, 过多的磁盘排序将会令 free buffer waits 的值变高,而这个区间并不只是用于排序的,对于开发人员我提出如下忠告:
1)、select,update,delete 语句中的子查询应当有规律地查找少于20%的表行.如果一个语句查找的行数超过总行数的20%,它将不能通过使用索引获得性能上的提高.
2)、索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除.表释放的空间可以再用,而索引释放的空间却不能再用.频繁进行删除操作的被索引的表,应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能.在许可的条件下,也可以阶段性地truncate表,truncate命令删除表中所有记录,也删除索引碎片.
3)、在使用索引时一定要按索引对应字段的顺序进行引用。
4)、用(+)比用NOT IN更有效率。
降低ORACLE的竞争:
先讲几个ORACLE的几个参数,这几个参数关系到ORACLE的竞争:
1)、freelists 和 freelist 组:他们负责ORACLE的处理表和索引的空间管理;
2)、pctfree 及 pctused:该参数决定了freelists 和 freelist 组的行为,pctfree 和pctused 参数的唯一目的就是为了控制块如何在 freelists 中进出
设置好pctfree 及 pctused对块在freelists的移走和读取很重要。
其他参数的设置
1)、包括SGA区(系统全局区):系统全局区(SGA)是一个分配给Oracle 的包含一个 Oracle 实例的数据库的控制信息内存段。
主要包括数据库高速缓存(the database
buffer cache),
重演日志缓存(the redo log
buffer),
共享池(the shared pool),
数据字典缓存(the data dictionary
cache)以及其它各方面的信息
2)、db_block_buffers(数据高速缓冲区)访问过的数据都放在这一片内存区域,该参数越大,Oracle在内存中找到相同数据的可能性就越大,也即加快了查询速度。
3)、share_pool_size (SQL共享缓冲池):该参数是库高速缓存和数据字典的高速缓存。
4)、Log_buffer (重演日志缓冲区)
5)、sort_area_size(排序区)
6)、processes (同时连接的进程数)
7)、db_block_size (数据库块大小):Oracle默认块为2KB,太小了,因为如果我们有一个8KB的数据,则2KB块的数据库要读4次盘,才能读完,而8KB块的数据库只要1次就读完了,大大减少了I/O操作。数据库安装完成后,就不能再改变db_block_size的值了,只能重新建立数据库并且建库时,要选择手工安装数据库。
8)、open_links (同时打开的链接数)
9)、dml_locks
10)、open_cursors (打开光标数)
11)、dbwr_io_slaves (后台写进程数)
在多数情况下,Oracle使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一般就这种SQL语句就是所谓的劣质SQL语句。在编写SQL语句时我们应清楚优化器根据何种原则来删除索引,这有助于写出高性能的SQL语句。
分享到:
相关推荐
Oracle 数据库性能优化是关系型数据库管理系统中的一项关键技术。随着数据量的不断增加和应用系统的复杂性增加,数据库性能的优化变得越来越重要。本文将讨论 Oracle 数据库语句性能优化的方法,从系统设计阶段的...
Oracle数据库是全球广泛应用的关系型数据库之一,其性能直接影响到整个系统的运行效率。本文将浅析Oracle数据库的性能优化,主要关注数据库服务器性能和数据库配置两个关键领域。 首先,数据库服务器性能是决定整体...
### 大型关系型数据库优化探讨 #### 一、前言 Oracle数据库作为一种广泛应用的大型关系型数据库管理系统,在众多行业中扮演着至关重要的角色。然而,在实际应用过程中,由于多种因素的影响,Oracle数据库往往无法...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其性能优化是DBA(数据库管理员)和系统管理员关注的重要领域。盖国强先生的《Oracle数据库性能优化》一书深入浅出地探讨了这个主题,旨在帮助读者理解...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其性能优化是一项关键任务,直接影响到系统的响应速度、资源利用率和整体稳定性。本合集包含了11个文档,全面涵盖了Oracle数据库性能优化的各种方面,旨在...
本文将深入探讨关系型数据库的工作原理及其优化策略,主要关注Oracle和MySql这两种主流数据库。 首先,我们要理解关系型数据库的基础——SQL(结构化查询语言)。SQL是用于操作关系数据库的标准语言,包括数据查询...
Oracle数据库是关系型数据库管理系统(RDBMS),其内部由多个层次构成,包括实例(Instance)、数据库(Database)、表空间(Tablespace)、数据文件(Datafile)、段(Segment)、区(Extent)以及数据块(Data ...
Oracle作为广泛应用的大型关系型数据库,其性能直接影响到系统的整体效率。优化策略主要围绕减少磁盘访问,以获取所需数据,并通过对比优化前后的响应时间、吞吐量、可用性、命中率和内存利用率等指标来评估和指导...
Oracle数据库作为一款广泛应用于管理信息系统、企业数据处理、互联网和电子商务领域的关系型数据库管理系统,其性能优化对于确保系统的稳定性和高效运行至关重要。随着数据量的快速增长,数据库性能优化成为数据库...
Oracle 11g数据库是Oracle公司推出的一款企业级关系型数据库管理系统,被广泛应用于各种规模的企业和组织中,尤其在大型数据存储、管理和分析方面表现出卓越的能力。中南大学的这个课程显然旨在帮助初学者理解和掌握...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,它在处理复杂的数据操作和高并发事务处理方面表现出色。然而,随着数据量的增长和业务需求的增加,数据库性能优化成为了一个至关重要的任务。"Oracle...
Oracle9i 是 Oracle 公司推出的一款功能强大的关系型数据库管理系统(RDBMS)。随着业务规模的增长和技术的发展,Oracle9i 的性能优化成为了提高系统响应速度、提升用户体验的关键环节。性能优化主要包括对数据库...
Oracle数据库是全球广泛使用的大型关系型数据库系统之一,它在数据存储、处理和管理方面具有强大的功能。本主题主要探讨Oracle数据库的设计原则和优化策略,以提升系统的性能和效率。 一、数据库设计基础 1. 规范化...
Oracle数据库是一个复杂且功能强大的关系型数据库管理系统(RDBMS),其核心组件包括实例和数据库文件。理解Oracle的体系结构对于优化性能至关重要。 - **实例**: 包括后台进程和内存结构,如共享池(Shared Pool)、...
《Oracle数据库性能优化实践指南》是一本专注于Oracle数据库性能调优的专业书籍,旨在帮助读者深入理解和掌握如何在实际环境中提升Oracle数据库的运行效率。Oracle数据库是全球广泛使用的大型企业级数据库管理系统,...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其性能优化对于企业级应用至关重要。这篇摘要将探讨三篇关于Oracle数据库性能优化的论文,包括“Oracle 10G 数据库性能优化的研究”、“Oracle 10g数据库...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其性能优化是DBA(数据库管理员)和系统管理员的重要工作内容。本教程"Oracle数据库性能优化"旨在帮助用户掌握提高Oracle数据库效率的关键技术和策略。 ...
Oracle数据库作为一款功能强大的关系型数据库管理系统,其性能优化对于保障航空结算系统的稳定运行至关重要。 1. Oracle数据库概述 Oracle数据库,起源于1970年代的关系型数据库技术,它通过理解数据间的关联,...
Oracle数据库作为业界广泛使用的大型关系型数据库管理系统,其性能优化对于企业的业务运行至关重要。这本书从硬件、软件以及实际应用的多个角度出发,系统地介绍了数据库性能优化的策略和技巧。 首先,硬件层面的...
ORACLE 数据库服务器性能优化技术 ORACLE 数据库服务器性能优化技术是指通过合理分配计算机资源、调整系统运行参数来提高 ORACLE 数据库服务器性能的过程。该技术包括调整 CPU 参数、服务器内存分配、硬盘 I/O、...