Oracle性能诊断不能不知的秘籍

Oracle性能诊断的方法有很多,下面就此讲讲常用的几种方法。一般而言,如果需要进行性能调整,那么,肯定是存在一些性能问题。所以,诊断,要从用户所提出的性能问题开始着手,做到有的放矢。

用户可能会罗列出一大堆的性能问题,你比如说:某个操作比较慢呀,或者说当达到多少用户的并发时CPU和内存使用达到100%,死锁等等。所以,我们要对用户列出的这些性能问题进行分析。当然,首先得从用户认为最迫切的性能问题开始着手进行分析。

明确了性能问题,这是系统调优的***步,让我们有一个出发点,但是分析性能问题,找到性能问题产生的原因,这是一个复杂的过程,并且是性能调优的非常重要的一个过程。只有找到了产生性能问题的根源,你才好着手进行调整。

在Orace性能诊断上,首先要有一个思路。从整体到局部,从面到点,逐步定位是一个不错的方法。那么,什么是从整体到局部呢?

Oracle数据库本质上是运行于某一种计算机上的应用软件,所以,这个整体,我指的就是运行Oracle的计算机(即服务器)。如果,性能诊断问题的根源是因为计算机的性能低下所导致,那么,做其它的调整将不能根本改变Oracle的性能状况,我们得从调整这个整体开始(即服务器的性能)。

服务器的性能我觉得由2个因素所组成:硬件和操作系统。

(1)硬件包括:CPU,内存,存储等。检查的方法是我们可以登录到服务器发布一些命令来查看服务器CPU,内存,以及硬盘等的I/O速率,如UNIX下及类UNIX(LINUX)下可以发布:

Top,vmstat,iostat,free等等命令来检查这些硬件资源的使用状况。还可以使用一些第三方的测量工具。比如,有一些工具是专门用来测试硬盘的传输速率的,从中我们可以知道硬盘的平均带宽是多少。
 通过这些工具,如果检查出来,发现是由于服务器的硬件资源所导致的性能问题,那么,我们就可以建议提升服务器的硬件。

(2)第二个因素是OS。因为Oracle是运行于OS之上的,所以OS的一些设置,也会导致一些性能问题。特别是在LINUX下,一些参数的设置,如:内核参数,交换空间(swap)等等,也能影响到整个系统的性能。所以,我们也可以在服务器上查看一下这些设置。如果是windows服务器,windows提供了一个性能测量工具,可以测量每秒的内存页交换(paging)等指标,从这些指标中我们也可以检查出内存是否足够,以及虚拟内存是否足够等等一些问题。

检查完服务器,就可以从Oracle本身开始进行分析了。分析的思路,我也是从整体到局部,从面到点。
整体:首先,我们可以从了解一下Oracle数据库的规划开始,这些规划具体包括:存储的规划,内存的规划,实例参数设置等等,下面我分别作一些简单的介绍。

(1)存储的规划(storage planning):实际上指的就是Oracle数据库的磁盘规划,这关系到Oracle的I/O性能。举例:oracle的数据文件磁盘是否和oracle软件磁盘分开?应用系统是否有创建单独的表空间?有没有为索引和大对象创建单独的表空间?多路复用(multiplexed)的控制文件是否分别存放于不同的磁盘?日志组的不同成员是否存放于不同磁盘?等等,这些都或多或少地影响到oracle的I/O性能。

(2)内存规划(memory planning):实际上指的是oracle SGA和PGA的分配是否合理?以及组成SGA的各个内存组件的内存分配是否达到***?一般而言,对于排序操作(sort operation)比较多的系统,比如,我们的XPC系统,或者报表系统,就应该适当地多分配一些内存给PGA。当然,PGA总体目标也要根据系统的连接数来确定。在SGA方面,总体原则是,尽量把大部分的内存分配给数据库高速缓存,以增加内存的命中率。至于其它组件如:JAVA池,大池等分配几十M就可以(32M一般就够了)。而对于共享池,则要根据CPU的性能来决定。一般而言,如果CPU很强(如采用多路CPU),则共享池设小一点也无所谓。一般而言,设80M~300M都能满足系统需求,再多设的话对系统性能增加不大,反而浪费内存。

(3)实例的参数:有些Oracle实例的参数能够影响到整个系统的性能。你比如:与oracle优化器相关的一些参数设置,与SQL共享和重用相关的参数,与是否预先将SGA装载到内存相关的参数等等.我们都要检查一些,这些参数设置是否合理.

那么,我们怎么能够检查出这些整体的设置是否就是导致性能问题的根源呢?Oracle有提供一个用于诊断性能问题的工具包(statspack).当然,可能也有一些第三方的用于oracle性能诊断的工具,但是我想没有其它工具比ORACLE本身提供的工具更全面,更准确了。

STATSPACK需要安装。安装后我们需要设置一下检查的时间间隔,实际上就是创建一个oracle的JOB。Statspack或根据我们设定的时间间隔来从oracle的动态性能视图中捕捉一些与性能相关的数据,然后根据一定的公式进行计算,生成一个有关于oracle各项性能指标的报告。报告罗列了一些实际的活动状况(负载,内存命中率等等),***等待事件,以及TOP SQL等内容,是我们进行Oracle性能诊断的一个比较综合的一个工具。

局部:oracle的整体调整完毕后,我们就可能逐步逐步调整某个局部了。你比如,我们可以根据用户反映出来的问题:比如说,在XPC中点击某个BUTTON或进行某项操作,系统响应比较慢,这个时候,我们就可能针对这个问题,来进行定位。导致这个操作慢有可能是由于这个操作执行的SQL语句比较慢,也有可能是由于我们的JAVA代码写得不够好,实现比较复杂,结构不合理等等所导致。往往,这样的性能诊断,要DBA和相关开发人员一起协同完成。在DB这一层,我们可以使用ORACLE的一些实用工具,如SQL TRACE等来捕捉这些SQL,然后对这个SQL的进行分析,并进行优化,从而解决这些性能问题。根据实践,相当大一部分性能优化是在SQL语句一级着手的。

除了上面我所描述的这些以外,其它与性能相关的情况也需要调查一下。如:Oracle是采用何种类型的优化器?如果是采用基于成本的优化器(CBO),是否有定期进行统计(gather shema statistics)?统计的时间间隔设置是否合理?

另外一个跟SQL性能相关的因素就是索引。我们也可以检查一下是否在相关表上有否建索引?这些索引建得是否合理?是否有存在从来没有被使用过的索引(通过索引监控工具来检查)?

***一个检查的项可能是和并发有关。假如用户反映说系统有时会出现死锁,这时,我们就要检查一下导致死锁的原因了,如捕获相关的引起死锁的SQL语句,分析是由于应用的架构设计所导致还是由于业务逻辑本身所导致。在DB这一级,我们可以检查一下事务的隔离等级是否高置合理。

【编辑推荐】

  1. 查看Oracle性能常用的SQL语句
  2. Oracle数据库的性能的完全保护的措施
  3. Oracle多表查询优化的代码示例
  4. Oracle索引聚簇表的数据加载的实操
  5. Oracle数据库优化器的三种类型

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/228036.html<

(0)
运维的头像运维
上一篇2025-04-18 02:59
下一篇 2025-04-18 03:00

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注