Oracle性能优化

简介:

前言   

    最近hyddd一直看Oracle的资料,今天特地总结一下这段时间了解到的关于Oracle性能优化的下手点

 

.数据库优化的方向

1.程序设计(这点最重要,如果程序本身设计有问题,再怎么进行下面的优化都是徒劳的。)

2.操作系统优化

3.硬件优化

4.数据库优化

5.SQL语句优化

 

.硬件优化

这里涉及到的硬件主要有:硬盘,内存。

1.硬盘的读写速度:建议增加硬盘的数量,从而增加每秒的并发操作。

2.内存大小。

 

.数据库优化


以上是Oracle 9i的体系结构,关于Oracle数据库的优化,很大程度上图有关。

1.根据数据库的使用方式得出合理的优化策略

(1)OLTP:连机事务处理。

需要实时处理大量请求,而每次处请求的数据量都是很小的。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

性能好坏的重要指标:响应时间与请求处理并发数。

(2)OLAP:联机分析处理。

可以简单地理解为在海量数据中得出统计/综合信息,是数据仓库的主要应用。做OLAP应用的数据库,数据量通常量非常大。和OLTP不同,OLAP应用的并发处理量是很低的,所以基本不用考虑并发问题。而在处理数据量方面,OLAP每次操作所需要处理的数据量通常都是非常大的,这点也和OLTP相反。

性能好坏的重要指标:查询大量数据的速度。

由于OLTP和OLAP是两个不同应用方向,所以在优化数据库时应采取不同的优化策略。

2.内存分配比例:2:1:1

内存分配的较佳方案:SGA占50%的物理内存,PGA和操作系统各占25%的物理内存,当然这也不是绝对的,但是SGA占的物理内存不能超过75%,最多只能占70%,否则Oracle可能会出现各种的异常。

3.SGA中各个POOL的内存分配

(1)Shared Pool:要分配多少内存不定,只要满足以下两个条件即可:

-Lib Cache的命中率>98%

-Data Dictionary Cache的命中率>85%

(2)Large Pool

-专用服务器:100-200M

-共享服务器:Session * (Sort_area_size + 2)

(3)Java Pool:无需使用,一般不分配空间。

(4)Redo Log Buffer Cache:小于5M,因为它的信息非常重要,应尽快把缓存数据写到文件中。

(5)DB_Buffer_Cache:尽量大。

4.在Oracle 10g中,如果我们定义了SGA_MAX_SIZE后,其实我们通过SGA_TARGET让Oracle自动调整SGA的内存分配。

5.Redo log files,Data filesArchive log files尽量放在不同的磁盘上,以均衡I/O特别是Redo Log files和Archive log files。

6.Undo Segment容量大小要符合实际应用,不能太小。

7.热点文件特殊处理

(1)分开存放Index Segment和Data Segment。

(2)使用分区表。

8.索引(Index)问题

(1)适当使用BTREE,BITMAP以及反向索引:不同索引适用于不同的表,设置索引之前要考虑这个问题。

(2)一个表的索引数最多不要超过5个,否则可能影响性能。

(3)定期重构索引。(单边树索引重构时可考虑使用反向索引降低索引树高度)

(4)注意索引是否失效,这一般是比较烂的SQL语句引起的问题。

9.尽量减少“全表扫描操作” & “排序操作”

10.看执行计划有助于各位DBA找出性能问题。

 

.SQL语句优化

1.通过v$librarycache了解命中率,这和3.1中提到的Shared Pool有关系,避免重复解析SQL语句,有助于提高数据库性能。

2.使用“物化视图”提高查询性能。

 

后记

    本文列了一些Oracle性能优化要点,如果大家要进行Oracle基础优化时,可参考以上要点。

    如有错漏,请各位指出。



本文转自hyddd博客园博客,原文链接:http://www.cnblogs.com/hyddd/archive/2009/08/30/1556939.html,如需转载请自行联系原作者。


相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
Oracle 关系型数据库 数据库
Oracle 11G常见性能诊断报告(AWR/ADDM/ASH)收集
Oracle 11G常见性能诊断报告(AWR/ADDM/ASH)收集
567 0
|
存储 Oracle 关系型数据库
9-3 Oracle数据字典和动态性能视图介绍
9-3 Oracle数据字典和动态性能视图介绍
280 1
|
11月前
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
329 1
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
1566 6
|
SQL Oracle 关系型数据库
Oracle SQL:了解执行计划和性能调优
Oracle SQL:了解执行计划和性能调优
329 1
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
1056 2
|
SQL Oracle 关系型数据库
关系型数据库Oracle性能问题
【7月更文挑战第15天】
172 4
|
存储 缓存 Oracle
Oracle数据库可扩展性和性能
【7月更文挑战第6天】
393 7
|
SQL 缓存 Oracle
关系型数据库Oracle性能问题
【7月更文挑战第16天】
227 2

推荐镜像

更多