0%

1、去宽恕那些你爱的人吧!
史密斯老人被女儿的情人弄的破产,从此穷困潦倒,从此似乎深深的痛恨着女儿,但是这恨中却饱含了深深的爱。拉不下面子,解不开心结,始终不肯原谅女儿。终于在得知女儿将要去世的时候,拖着老弱病痛的身体在街上狂奔,想要放下一起再见他一面,可是最终看到的却是女儿冰冷的尸体。爱恨情仇之后,只剩下一个父亲对女儿最初的爱。从此他的内心被悔恨蚕食,痛恨自己没有早点原谅女儿。

阅读全文 »

 回顾了一下ORACLE后台进程相关的知识,写篇博客记录一下。
 认识ORACLE实例的两大基础内存结构和后台进程。ORACLE的后台进程架构根据操作系统的不同有可能存在差异。对于WINDOWS系统,ORACLE的后台进程是作为操作系统中进程的执行线程运行的。而LINUX或者UNIX系统,可以是操作系统进程也可以是进程中的执行线程。需要说明的是,在12c之前,ORACLE进程在Linux和UNIX系统中不能作为线程运行;12c开始,多线程Oracle数据库模型才开始让oracle数据库可以作为操作系统线程在单独的地址空间运行,可以通过将系统参数THREADED_EXECUTION设置为TRUE,让数据库运行在线程模式。

阅读全文 »

 本文梳理、归纳了在之前工作中常见的一些执行计划。了解ORACLE中有哪些可能的执行计划,以及什么情况下适合哪种执行计划是进行SQL优化的基础。

阅读全文 »

 很多时候可能我们都希望CBO能够帮我们生成正确、高效的执行计划,但是很多时候事实并非如此,可能因为各种各样的原因(如,统计信息不正确或者CBO天生的缺陷等)都会导致生成的执行计划特别的低效。之前的一家公司有一台专门用于批量做数据校验清洗的数据库,每次校验清洗完成数据就会清理掉,统计信息经常会发生较大的变更,之前跑得好好的SQL,可能有时候跑5-6个小时都跑不完了,这时候查看执行计划,发现不正确的统计信息导致了执行计划的变更。

阅读全文 »

 获取SQL执行计划的方式有很多,但是某些时候获取的SQL执行计划并不是准确的,只有在SQL真实执行之后获取到的SQL PLAN才是真实准确的,其他方式(如,explain plan)获取到的执行计划都有可能因为绑定绑定变量和当时SQL执行环境的影响而导致获取到的执行计划可能不准确。对于AUTOTRACE开关,当执行SET AUTOT ONSET AUTOT TRACE命令此时的SQL是实际执行过的,所以此时获取到的执行计划是准确的。而SET AUTOT TRACE EXP命令时稍有不同,当执行的是SELECT语句时SQL语句并不会实际执行,此时获取到的执行计划和直接使用explain plan命令获取的结果是一致的,但是对于DML命令则会实际执行该SQL。

阅读全文 »

          为了对ORACLE数据库有一个基本的了解,我们首先需要理解ORACLE的内存结构。
          可以大体上将ORALCE内存分为以下几类:

  • System Global area(SGA)
    一组共享内存结构,包含数据库实例的数据以及控制信息。
  • Program global area(PGA)
    进程或者线程独占的内存结构。当ORACLE进程启动时分配该内存。
  • User global area(UGA)
    与用户会话相关的内存结构。
  • Software code areas
    用于存储正在运行或可能运行的代码的内存区域。
阅读全文 »

在Linux下可以通过脚本或者Linux内建的命令来进行网络的相关配置,就我而言更倾向于直接编辑网络相关的脚本进行配置,这样看上去更清晰一些。

阅读全文 »

Linux系统命令非常之多,但是玩过Linux之后就会明白,我们只需要掌握常用的命令就可以了。常用命令的使用方式也不可能都记住,但是你只要知道这个命令,使用的时候查下man或commond -h看看用法就好了。

阅读全文 »

      PL/SQL中我们可以定义两种属性数据类型:COLLECTION和RECORDS。属性数据类型的内部成员可以是标量数据类型也可以是属性数据类型。
      集合数据类型的内部由相同数据类型的元素组成,我们可以通过它的唯一索引以variable_name(index)的方式去访问其中的元素。集合数据类型包含以下几种:关联数据(associative array)、可变数组(Varray)、嵌套表(Nested table)。

阅读全文 »