• 执行存储过程时候的一个非常奇怪的性能问题


    系统中存在一个模块,需要完成大量的合法性检查和查询,为了提高性能,设计了存储过程包和一个主存储过程,由数据访问层调用, 但是在执行该模块的时候经常超时,甚至等抛出待锁的错误。在我的计算机上同样安装了Oracle,但是执行该存储过程的时间不超过5秒钟, 使用该模块的时候性能也是表现很好。花费了将近一个星期的时间对该执行该存储过程进行优化,但是问题依然没有得到解决,百思不得其解。 后来想到我们的系统是一个分布式的系统,客户端操作数据都是通过中间件服务器进行的。怀疑是不是中间价服务器与Oracle服务器通讯的性能 很差的原因造成的。

    在中间价服务器上安装了PL/sql developer,然后执行上述的存储过程,这时候一个非常奇特的现象出现了,存储过程执行的时候特别的慢, 消耗了11分钟才执行完毕。也就是说,系统的性能瓶颈可能在中间件服务器与Oracle服务器的通讯上。

    为了验证这个问题,在另外一台测试服务器上安装了Oracle,建立相关的数据环境,同样执行该存储过程的时间没有超过5秒钟。也就是说 可以确定中间件服务器与Oracle服务器的通讯是系统性能的瓶颈。

    客户的Oracle服务器操作系统是Unix操作系统,硬件是小型机,中间价服务器采用windows server2003 R2,按照常规的理解,其性能应该 非常好才对。因为没有权限对Unix操作的设置做检查,对 unix操作系统也不是特别精通,经协商让用户咨询IBM等供应商来解决这个问题。目前用户 暂时将Oracle安装到windows平台下使用。

    由此想到我们平时总是强调PL/SQL和Oracle的性能优化,是完全从程序的角度出发的优化方式,其实有的时候性能不仅仅是程序的问题,同样 硬件对性能的影响也是非常大的,甚至是致命的。

    影响性能的因素藏在系统应用环境的每一个角落!!

  • 相关阅读:
    实用的SpringBoot生成License方案
    实用的jar包加密方案
    整合Atomikos、Quartz、Postgresql的踩坑日记
    CentOS7使用NTP搭建时间同步服务器
    初探Mysql架构和InnoDB存储引擎
    postgresql常用命令
    闲聊CAP、BASE与XA
    还原面试现场-ACID与隔离级别
    图片拖动并交换图片-使用观察者模式
    图片拖动并交换图片
  • 原文地址:https://www.cnblogs.com/yanrongpi/p/991262.html
Copyright © 2020-2023  润新知