`
neo
  • 浏览: 266639 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle 10g 优化

阅读更多

一. 优化要考虑的方面
1. 程序自身设计
2. SQL语句优化
  1) 通过 v$librarycache 了解命中率,
    这和下面提到的Shared Pool有关系,避免重复解析SQL语句,有助于提高数据库性能。
  2) 使用 “物化视图” 提高查询性能。
3. 数据库优化
4. 操作系统优化
5. 硬件优化,这里涉及到的硬件主要有:硬盘,内存。
    1) 硬盘的读写速度:建议增加硬盘的数量,从而增加每秒的并发操作。 2) 内存大小。

二. 数据库优化

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

 1) OLTP:连机事务处理。
   需要实时处理大量请求,而每次处请求的数据量都是很小的。
   OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
   性能好坏的重要指标:响应时间与请求处理并发数

 2) OLAP:联机分析处理。
   可以简单地理解为在海量数据中得出统计/综合信息,是数据仓库的主要应用。
   做OLAP应用的数据库,数据量通常量非常大。
   和OLTP不同,OLAP 应用的并发处理量是很低的,所以基本不用考虑并发问题。
   而在处理数据量方面,OLAP每次操作所需要处理的数据量通常都是非常大的,这点也和OLTP相反。
   性能好坏的重要指标:查询大量数据的速度

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

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

 内存分配的较佳方案:
  1) SGA占50%的物理内存,
  2) 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找出性能问题。

 由于oracle10g简化了配置参数,而且提供自动根据数据库访问情况对各类缓存进行分析优化的功能,因此在oracle参数这层进行优化主要有以下几点。

PRE_PAGE_SGA
 oracle实例启动时,会只载入各个内存区最小的大小。而其他SGA内存只作为虚拟内存分配,只有当进程touch到相应的页时,才会置换到物理内存中。但我们也许希望实例一启动后,所有SGA都分配到物理内存。这时就可以通过设置PRE_PAGE_SGA参数来达到目的了。
 这个参数的默认值为FALSE,即不将全部SGA置入物理内存中。当设置为TRUE时,实例启动会将全部SGA置入物理内存中。它可以使实例启动达到它的最大性能状态,但是,启动时间也会更长(因为为了使所有SGA都置入物理内存中,oracle进程需要touch所有的SGA页)。

LOCK_SGA
为了保证SGA都被锁定在物理内存中,而不必页入/页出,可以通过参数LOCK_SGA来控制。这个参数默认值为FALSE,当指定为TRUE时,可以将全部SGA都锁定在物理内存中。当然,有些系统不支持内存锁定,这个参数也就无效了
 
SGA_TARGET / SGA_MAX_SIZE
 10G中不需要分别制定SGA的每个部分的大小,假设将SGA_TARGET设置为200M,表明SGA最大为200M 所有SGA组件如share pool,buffer cache,large pool,java pool都需从其中分配,oracle会自动为各组件指定初始值,并在运行过程中动态的调整各组件的大小。
 当使用SGA_TARGET时,若未设置SGA_MAX_SIZE 或设置小于SGA_TARGET 则SGA_MAX_SIZE等于SGA-TARGET.SGA_TARGET 是可动态调整的,其值不能大于SGA_MAX_SIZE

目前推荐的参数配置:
LOCK_SGA = TRUE
SGA_TARGET >= 4G (在系统物理内存允许的情况下越大越好)
SGA_MAX_SIZE >= 4G (在系统物理内存允许的情况下越大越好)

但是效率并没有什么提高,通过以下两个查询看,命中率分别为99.2%和98.8%,说明在oracle程序层的优化已经达到了较高的效率:

查询高速数据缓存命中率:
select sum(pins) "data access",sum(pins)-sum(reloads) "cache hit",
(1-sum(reloads)/sum(pins)) * 100 "hit rate" from v$librarycache
 
查询数据字典命中率:
select sum(gets) "dictionary access",sum(gets) - sum(getmisses) "dictionary cache hit",
(1-sum(getmisses)/sum(gets)) * 100 "hit rate" from v$rowcache

分享到:
评论

相关推荐

    oracle 10g优化

    ### Oracle 10g 优化知识点详解 #### 一、Oracle 10g 性能调整与优化概览 在企业级应用环境中,Oracle 数据库的性能直接影响到系统的响应速度和稳定性。Oracle 10g 版本作为一款成熟且广泛应用的企业级数据库管理...

    Oracle10g优化学习资料.pdf

    Oracle 10g 优化是数据库管理中的关键环节,它涉及到多个方面,旨在提升数据库的运行效率、降低资源消耗和改善响应时间。本篇资料主要介绍了如何收集性能数据、优化SQL语句和应用程序以及调整Oracle数据库的各种组件...

    Oracle 10g性能优化.pdf

    《Oracle 10g性能优化》一书深入探讨了如何在Oracle 10g数据库环境中实现性能优化,针对企业级应用中的常见问题提供了一系列实用的解决方案。以下是对该主题的关键知识点进行的详细解读: ### 1. Oracle Database ...

    ORACLE10G 性能优化

    ### ORACLE10G 性能优化 #### 一、Oracle体系结构 Oracle10g数据库的性能优化首先需要理解其基本的体系结构。Oracle体系结构主要包括实例和数据库两大部分。 - **Oracle实例**:是访问数据库的一种方式,每个实例...

    oracle10G和oracle11G的OCI.dll

    在Oracle 10G和11G版本中,oci.dll扮演了至关重要的角色,为应用程序提供了访问数据库的底层接口。Navicat是一款流行的数据库管理工具,它利用oci.dll来连接并操作Oracle数据库。 Oracle 10G是Oracle公司在2003年...

    Oracle10g性能优化

    ### Oracle 10g 性能优化核心知识点详解 #### 一、性能优化的重要性与目的 在企业级应用中,数据库性能的好坏直接影响到业务系统的响应速度和用户体验。Oracle 10g作为一款广泛使用的数据库管理系统,其性能优化是...

    oracle 10g _64x

    Oracle 10g是Oracle公司推出的数据库管理系统的一个版本,它主要针对64位操作系统环境设计。Oracle数据库系统在IT行业中有着广泛的应用,尤其在大型企业、金融机构和互联网公司的数据存储和管理方面扮演着核心角色。...

    oracle 11g ,10g软件资源 百度云下载

    ### Oracle 11g与10g软件资源百度云下载相关知识点 #### 一、Oracle数据库简介 Oracle数据库是美国甲骨文公司的一款关系型数据库管理系统,在市场上占有重要的份额。Oracle数据库以其高度的安全性、可靠性和灵活性...

    oracle 10g 考试题库

    Oracle 10g 是Oracle公司推出的数据库管理系统的一个版本,它在2003年发布,提供了许多增强功能和性能优化,对于数据库管理员(DBA)来说是重要的学习和认证目标。"Oracle OCP"(Oracle Certified Professional)是...

    Oracle10g数据库优化详解

    ### Oracle10g数据库优化详解 #### 一、基本概念 **1. 实例与数据库** - **实例**: 当数据库启动后,多个进程被加载到内存中并进行协同工作,这些进程及其状态共同组成了一个数据库实例。实例是运行时的概念,...

    Oracle 10g入门与提高

    Oracle 10g包含了许多关键特性,如数据仓库优化、网格计算支持、自动存储管理(ASM)以及Real Application Clusters (RAC)等。其中,ASM提供了一种统一的存储管理方式,简化了数据库的部署和管理。RAC则允许多台...

    Linux下Oracle 10g安装

    在Linux环境下安装Oracle数据库10g是一项复杂但必要的任务,对于数据库管理员(DBA)和想要学习如何在Linux平台上安装和配置Oracle数据库的IT专业人员来说,这是一项基础技能。以下是在Linux上安装Oracle 10g的详细...

    oracle 10g for linux

    同时,定期检查和优化系统参数,监控数据库性能,是保持Oracle 10g高效运行的重要环节。 总的来说,安装Oracle 10g在Linux系统上是一项细致的工作,需要对Linux系统和Oracle数据库有深入的理解。通过合理规划、精确...

    Oracle 10g ODBC驱动 各种版本的

    Oracle 10g ODBC驱动程序是连接到Oracle数据库的关键组件,它允许应用程序通过开放数据库连接(ODBC)标准与Oracle 10g数据库进行通信。ODBC是一种接口,使得开发者能够编写一次代码,就可以在多种数据库系统上运行...

    Oracle10g 在windows上的安装

    ### Oracle10g在Windows环境下的安装指南 #### 一、Oracle 10g简介 Oracle Application Server 10g是Oracle公司推出的一款集成化的、基于标准的软件平台。它是Oracle 9i Application Server(Oracle9iAS)Release ...

    oracle 10g 下载地址大全

    Oracle 10g 的优化主要包括索引优化、SQL 优化和存储优化等。用户可以通过调整数据库参数、优化 SQL 语句和存储配置来提高数据库的性能。 Oracle 10g 是一个功能强大且复杂的数据库管理系统。通过了解其架构、特点...

    ArcSDE 10.2 FOR Oracle10g、11g安装包

    ArcSDE 10.2 for Oracle 10g 和 11g 是Esri公司推出的用于管理和分发地理空间数据的中间件产品,它在Windows平台上提供了与Oracle数据库系统的集成。ArcSDE使得GIS(地理信息系统)软件,如ArcGIS,能够高效地访问和...

    linux之oracle10g安装

    在Linux环境下安装Oracle 10g是一项技术性强且步骤繁多的任务。Oracle 10g是一款功能强大的关系型数据库管理系统,常用于企业级的数据存储和处理。以下将详细阐述安装过程中涉及的关键知识点。 首先,安装前准备是...

    Oracle 10g官方教程

    ”可以推断出该文档主要围绕Oracle 10g数据库系统的使用、管理和优化展开,是Oracle公司官方发布的一套详尽的指导手册。下面将基于此信息,深入探讨Oracle 10g的关键知识点。 ### Oracle 10g概述 Oracle 10g是...

Global site tag (gtag.js) - Google Analytics