返回顶部
首页 > 资讯 > 数据库 >开发中常见的Oracle三大故障与调优方法是什么
  • 473
分享到

开发中常见的Oracle三大故障与调优方法是什么

2024-04-02 19:04:59 473人浏览 八月长安
摘要

本篇内容介绍了“开发中常见的oracle三大故障与调优方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所

本篇内容介绍了“开发中常见的oracle三大故障与调优方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们知道在平时的Oracle开发工作中我们有时候会遇到些BUG,我曾经碰到过的BUG大致分为三类:
 
1. 出现ora-00600,ora-03113,ora-07445等错误,导致程序无法执行
2. 执行计划错误,导致很长时间才出结果
3. 由于执行计划错误而给出了错误的结果
 
第一类很让人无语,明明写的代码没有任何问题,但Oracle就是报这几个错误中的一个。这一般是Oracle的bug导致的,少部分是执行计划错误导致的。一般在生产环境中碰到这样的问题,只能认栽,通常只能换个方式来实现同样的功能,要不然就得换开发方案,但这样的开发成本就会很高了。如果在开发环境中碰到,还可以通过给数据库打补丁来解决这类问题(如果Oracle发布了的话,不过在生产环境上,补丁不是随便就可以打上的,一定要打的话,必须先做充分的测试)。
第二类很使人无奈,不过还好,为什么说“还好”?因为,这至少还能出来正确的结果嘛!这一般可以通过给数据库打补丁、修改参数、添加强制提示等方法来解决这类问题。比如我曾经碰到过Oracle10.2.0.5在linux 64bit下出的full outer join的bug(类似于官方给出的bug2927071),一个full outerjoin出来结果需要两三分钟,而通过修改参数
alter session set "_optimizer_native_full_outer_join"=force;
后,改变了原先不正确的执行计划,结果一秒内就哗哗哗的出来了,经验证结果也是正确的。
第三类是最悲催的,可以说直叫人生不如死。为什么这么说?第一类bug碰到的话,Oracle会报错,起码能提醒你此路不通;第二类bug碰到的话,起码你本能的可以感觉到这里有问题,就算你没意识到,结果也是正确的,对吧?但这第三类bug,我从9i到10g都碰到过,明明写的sql没任何问题,但Oracle偏偏就给你错误的结果,还好每次都因细心发现了,及时调整了技术方案,才没导致更大的问题发生。
碰到这些bug并不就意味着你很倒霉,事实上,换个角度看,首先要恭喜你,因为这说明你的sql水平已经达到了一个较高的程度了;倘若你能意识到不对劲,那说明你足够敏锐;再若你还能找到解决办法,那你就很厉害啦!
至于如何识别、解决开发过程中碰到的这类bug,这个话题比较大比较深,以后有机会我再和大家分享。但在这里我需要指明的是,其实很多最终结果不正确的程序,多数都是因为代码本身的问题导致的,而因为Oracle Bug导致的问题只占极少的部分。
 
关于Oracle的优化,俗话说“树挪死,人挪活”,咱不能因为一块石头堵在前面就非得把它炸开才能前行,绕过去往前走也是一种方法,对吧?
 
做系统优化其实也一样。系统的性能提升是涉及到方方面面的,从网络操作系统、数据库、应用服务器到程序,都有提升的空间。现在很多人都知道,最该优化的部分是攻城狮们开发的程序,比如拿数据库的性能问题占比举例,有可靠的统计数据指出,70%的问题出在攻城狮编写的SQL上。而在这现象背后更根本的还在于,没有可胜任数据库开发工作的攻城狮!一旦出现系统性能问题,大家第一反应就是去找调优高手来优化SQL,久而久之,这就成了一个习惯。就好像平常不注意预防疾病,反正病了就找大夫治疗,而你也许不知道在未来某一天,面对焦急的亲属,白衣天使也会无奈的摇摇头,摘下口罩,叹了口气轻声道:“我们已经尽力了,你们准备后事吧……”
很多公司,包括专门做IT的公司在内,的确是没有意识到提高开发技术可以有效的提高系统性能,这个现象的本质关键是老板们没意识到提高开发技术其实是可以降低开发和后期运营维护成本的,这笔账算清楚了,老板自然愿意投入资源来提高工程师们的开发技能。通常不是技术出身的老板是意识不到的,这就需要技术管理者“晓之以理,动之以情”说服老板投入资源。当然,老板投入资源后,技术管理者必须hold得住,要将事情漂亮得完成,看到效果的老板自然就不会存疑了。
对于意识到了但是没技术资源去做的情况,只能用其他资源来换取技术资源了,比如内部培养人才、找外包、从外部请和尚等等。
老外也有句谚语——“一天一个苹果,你就不需要医生了”,这说的也是预防为主。我们转换下思路,如果提高了攻城狮们的开发水平,甚至是配备了专职的数据库开发工程师,那写出较高质量的SQL就不是什么难事儿。这样就提前消除了多数性能方面的隐患,自然就降低了后期出现性能问题的概率,也免去了大量的请人做调优的成本,而提高攻城狮们的开发水平成本并不是特别高,何乐而不为?ISO-9000告诉我们,质量是生产出来的,不是检测出来的,同样,高质量的SQL应该是开发写出来的,而不应总是通过DBA去调优出来。无论公司是否意识到、是否有资源去做,提高开发技术尤其是数据库端的开发技术都是大势所趋,不去迎面解决问题而装鸵鸟是不可取的。
 
Oracle的开发和运维是一个系统性的工作。简单说就是理论与实践充分结合,只懂理论和只会实践同样是不可取的,要学会用理论指导实践,通过实践验证理论,在实践过程中不断丰富理论知识,在理论指引下不断的提高实践能力。
就数据库开发而言,最好具备如下能力与素质:
1. 掌握SQL基础知识和数据库基本理论,这会有助于你理解SQL是如何运作的,什么样的SQL会跑得更快。这可以通过学习相关白皮书或者技术文档获得
2.  学会提问。提问是一门艺术,无论学什么都需要掌握这门艺术。
3. SQL中高级知识,这能让SQL成为你的有力工具。这可以通过阅读官方文档,经常来itpub的数据库开发版块学习学习,来提高自己的水平。学习时不要想当然,就像trim并不等于rtrim+ltrim,认真读文档的人都知道。
4. 掌握至少一门相关的开发语言,java、PHP等等都行,这有助于你从另一个视角来认识数据库开发。
5.一定的数学能力,最好具备高中以上的数学知识。良好的数学素养可以为你带来新的思路和方法,有助于提高开发能力,并能帮助你理解。
6.一定的科学素养。类似于“某月有5个周五、周六和周日,这种现象823年才出现一次”的论调,一眼就要能看穿是假的(或者会通过程序去证伪),要知道1582年10月5日—14日这十天是不存在的等等。

“开发中常见的Oracle三大故障与调优方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: 开发中常见的Oracle三大故障与调优方法是什么

本文链接: https://lsjlt.com/news/63611.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 开发中常见的Oracle三大故障与调优方法是什么
    本篇内容介绍了“开发中常见的Oracle三大故障与调优方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • raid5常见故障数据恢复的方法是什么
    今天小编给大家分享一下raid5常见故障数据恢复的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。服务器raid阵列...
    99+
    2023-06-03
  • 大数据中对讲机使用过程中的常见故障及排除故障的解决方法是什么
    今天就跟大家聊聊有关大数据中对讲机使用过程中的常见故障及排除故障的解决方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  对讲机使用过程中的常见故障及排除故障的解决方法  问...
    99+
    2023-06-05
  • Linux运维常见故障及处理的方法是什么
    今天就跟大家聊聊有关Linux运维常见故障及处理的方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。作为Linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问...
    99+
    2023-06-16
  • GO语言分布式开发中常见的错误与解决方法是什么?
    随着互联网和云计算的快速发展,越来越多的应用程序需要支持分布式部署和运行。GO语言因其卓越的并发性能和易于编写高效网络应用的特性,成为了分布式开发的热门语言之一。然而,在分布式开发中,一些常见的错误可能会导致应用程序的崩溃或性能下降。本文...
    99+
    2023-06-29
    分布式 面试 教程
  • Oracle性能调优的方法是什么
    Oracle性能调优的方法包括但不限于以下几种: 使用索引:通过在表中创建适当的索引,可以加快查询的速度。可以使用索引来加速WH...
    99+
    2024-04-19
    Oracle
  • 电脑常见故障问题及处理方法是什么
    今天小编给大家分享一下电脑常见故障问题及处理方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。电脑常见故障问题及其处理...
    99+
    2023-06-28
  • Vue开发的常用方法是什么
    本篇文章为大家展示了Vue开发的常用方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。$nextTick()this.$nextTick()将回调延迟到下次 DOM 更新循环之后执行。在修改数...
    99+
    2023-06-22
  • C语言开发中的常见错误是什么
    这篇“C语言开发中的常见错误是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言开发中的常见错误是什么”文章吧。一、编...
    99+
    2023-06-30
  • 电脑常见的内存故障问题和解决方法是什么
    这篇文章主要介绍“电脑常见的内存故障问题和解决方法是什么”,在日常操作中,相信很多人在电脑常见的内存故障问题和解决方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑常见的内存故障问题和解决方法是什么...
    99+
    2023-06-28
  • 常见的SpringMVC故障排查及解决方案是什么
    本篇文章给大家分享的是有关常见的SpringMVC故障排查及解决方案是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、前言相信我们每个人在SpringMVC开发中,都遇到...
    99+
    2023-06-05
  • oracle中procedure调用的方法是什么
    在Oracle中,可以使用以下方法调用存储过程(procedure): 直接调用:通过使用EXECUTE或CALL语句来直接调用存...
    99+
    2024-04-09
    oracle
  • Flex组件开发常见问题的解决方案是什么
    Flex组件开发常见问题的解决方案是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Flex组件开发总结如何监听键盘事件?<mx:TextAreaidm...
    99+
    2023-06-17
  • PHP开发规范中性能优化的方法是什么
    这篇文章主要介绍“PHP开发规范中性能优化的方法是什么”,在日常操作中,相信很多人在PHP开发规范中性能优化的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP开发规范中性能优化的方法是什么”的疑...
    99+
    2023-06-04
  • oracle大数据量查询优化的方法是什么
    有几种方法可以优化Oracle中大数据量查询的性能:1. 创建合适的索引:根据查询条件和频繁使用的列,创建适当的索引可以大大提高查询...
    99+
    2023-09-26
    oracle
  • Struts2中的Ajax开发方法是什么
    本篇内容介绍了“Struts2中的Ajax开发方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先不谈Struts2的原生支持,我们...
    99+
    2023-06-17
  • PHP中PDO是什么,其对象使用的常见方法是什么
    本篇内容介绍了“PHP中PDO是什么,其对象使用的常见方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PDO是什么PDO是别人写的“...
    99+
    2023-06-20
  • MongoDB的性能基准测试与调优方法是什么
    MongoDB的性能基准测试与调优方法如下: 性能基准测试: 使用工具如YCSB(Yahoo! Cloud Serving B...
    99+
    2024-05-07
    MongoDB
  • 电脑无法开机排除故障的方法是什么
    排除电脑无法开机的故障可以尝试以下方法:1. 检查电源插头和电源开关,确保电源供应正常。可以尝试更换电源插头或者连接到其他电源插座试...
    99+
    2023-09-07
    电脑
  • web开发中三个最有效的增加外链方法是什么
    web开发中三个最有效的增加外链方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。网上关于增加外链的方法实在太多,但大多数的方法都是很不...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作