一个大二学生的Oracle技术之路:Oracle数据库技术所给予我的

作者为Anderson Liu ,90后大二学生,个人博客地址:http://www.peacesky.cn/

 

2014年的时候有一个数据,中国普通本专科招生699.8万人,在校生2468.1万人,毕业生638.7万人,全年研究生招生61.1万人,在学研究生179.4万人,毕业生51.4万人。

而我,是这浩浩荡荡大军中,普通的一员。

和所有其他的学生一样,在越来越高的物价、房价下,我们没有资金雄厚的家庭背景,只有赤手双拳,和年轻的时间与精力。顶着压力,努力提升自身能力适应就业市场,期待实现经济独立乃至经济自由。

我们开始的愿望很简单,能够依靠自身踏实努力,成长为经济独立,心理独立的人。

即将踏出校园,首先要面对的是经济独立。

路有很多条,而Oracle数据库技术则提供了一条,努力与收获在很大程度上成正比的,相对稳定的路 。

 

相对来讲,公平的路。

 

做技术,在我眼里,可以单纯地靠自己真正的能力,获得自己应得的。

不需要在国内的大环境下,靠关系,靠长辈,靠酒桌,各种乱七八糟的手段,获得特殊机会。

一个人能够有自己真正的能力,靠自己的能力得到简单的日子,经济独立,养家糊口,乃至经济自由,做理想之事,我想,这才是真正俗世里的安稳。

 

Oracle 数据库技术给予了我这样一个实现愿望的机会。我很感激。

 

接触Oracle 的开始

 

最初最初,应该是在学习Java的时候,由于需要从Oracle数据库中读取数据,从而学到一些简单的Oracle数据库操作,诸如使用简单的SQL语句进行增删查改数据等。

那时开始慢慢接触了更多关于Oracle数据库技术的信息。

后来在学习安装Oracle数据库以搭建学习实验环境时,导师讲到,Oracle数据库的就业前景很好,乃至于许多Java从事人员转行从事Oracle DBA。

 

Oracle产生浓厚兴趣的开始

 

对Oracle产生浓厚兴趣的开始,是从图书馆无意中看到梁敬彬先生的《收获,不止Oracle》这本书开始的。

梁先生是在Oracle数据库技术教学很有特色的一位DBA,至今依然记得,梁先生在书的开始,展示了一个例子,名为《单车到飞船的经典之旅》。通过执行等价SQL语句的性能差异来分析其中的原因所在。

梁先生一步步展示了由一段SQL语句由42.87秒(单车速度),优化到08.41秒(摩托速度),然后继续改进,优化到06.25秒(摩托变汽车),再继续优化到02.18秒(动车速度),

继而,梁老师在书中模拟场景写道:

“   ‘还能再快吗?’梁老师没完没了啊。

‘不可能!’这下同学们肆无忌惮地大笑了,他们知道梁老师这回肯定是故意的了。

‘不可能? 看来你们又认为老师再开玩笑了,如果老师能让插入该表的动作更快,你们请老师吃饭,否则,老师请你们吃饭?’

‘没问题!’同学们应答得好干脆啊,他们心里其实也知道,这请客的说法一定是开玩笑的,课堂的气氛被调到了最高潮了。”

 

然后,梁先生展示了他的新写法,使得性能提升到让大家目瞪口呆的00.23.22秒!

我看到这里已经惊讶得口都张开了…

继续往下看时,梁先生还不满足,还要挑战更快的性能,然后真的做到了,把性能提升到00.10.14秒!

紧接着,他在书中对学生开玩笑说:”同学们,插入语句还能再快吗?”

然后利用并行原理让性能由最初的每秒两千多条提升到每秒插入3000000条!

至此我已在书前目瞪口呆…

 

这样神奇而真实具体的性能极大提升过程就这样活生生发生在我的眼前,一时之间心中波涛涌动有些不能平静…

自此便对Oracle数据库技术有了浓厚兴趣,并不断通过实验测试来学习Oracle数据库技术。

 

Oracle数据库技术带来的不断成长

 

大概国内大多数技术人员的最初,都经历过对于英文文档那密集的英文感到隐隐畏惧吧。我最初的技术起点是Java编程开发,在学习Java的过程,虽偶尔有查阅英文文档,然而最后还是找了中文翻译版的来看。

而学习Oracle数据库技术的最初,便有诸多前辈叮嘱,要学好Oracle数据库技术,首先第一步就是要翻阅Oracle官方英文技术文档!

于是为了学好这门技术,便开始打破内心的障碍,硬着头皮翻阅Oracle官方文档。

由于有一定的英语基础,在开始的时候竟也发觉其实文档也并不难看懂。于是慢慢进入良性循环,在一步步学习中,逐渐养成了阅读英文文档的好习惯并享受于其中。

打破了语言禁锢的技术世界顿时变得广袤无边起来。

这个习惯为技术生涯带来的好处是显而易见的!随之而来的是眼界的宽广和对技术原理更深入的理解以及更高的学习效率。

这也为后来我有兴趣接触学习Python等技术时,能有更高的学习效率。

在可以预见的将来,我也将一直受益于这个由学习Oracle所培养起来的习惯。

再后来,是在偶然机会下,看到国内Oracle资深专家Maclean正在招聘实习生。抱着努力试试,为自己争取机会的心态,作了努力,最后有幸获得了与Maclean共事的机会。

而从这个时间段开始,开始了接触Oracle相关技术文档翻译以及进阶的Oracle技术学习。

通过翻译相关技术文档的过程,得以了解更多的Oracle数据库技术细节,从而对于Oracle数据库技术也有了比以往更深一层的理解。

而在学习进阶Oracle数据库技术的过程中,有幸有了Maclean先生的指点,也在Oracle数据库技术学习过程中有了更高的效率和更大的自信心。

而另一方面,由学习Oracle数据库技术所伴随着的学习Linux使用及管理,也让我受益匪浅。Linux为开发人员带来的工作效率提升是很大的,而随着在学习Oracle过程中对于Linux的不断熟悉,我也喜欢上了在Linux下进行开发操作的迅捷快感!

对这一切我都心怀感激!

感谢由Oracle学习所带给我的一切!

 

Oracle带给我更多的

 

其实,Oracle带给我更多的,应该说,是在当下每年大学生毕业数量惊人的背景下,在压力日渐增长的国内就业前景下,一种立于职场的底气。

一种对未来乐观的期待。一种在严峻形势下的安全感。

一种给一个普通大学生,一个通过自身努力得到应得收获的途径。

一个从家庭与学校走向社会的稳固桥梁。

对此,我依然心怀感激。

 

感谢Oracle数据库技术!

 

 

在最后附录梁先生在书中的例子代码:

 

———————————————

1、单车速度:

create or replace procedure proc1
as
begin
    for i in 1 .. 100000
    loop
        execute immediate
        'insert into t values ( '||i||')';
    commit;
    end loop;
end;
/ 

 

 

———————————————

  • 摩托速度:
create or replace procedure proc2
as
begin
    for i in 1 .. 100000
    loop
        execute immediate
      'insert into t values ( 😡 )' using i;  
  commit;
    end loop;
end;
/

 

 

———————————————

 

  • 汽车速度
create or replace procedure proc3
as
begin
    for i in 1 .. 100000
    loop
     insert into t values (i);   
  commit;
    end loop;
end;
/

 

 

———————————————

 

  • 动车速度:
create or replace procedure proc4
as
begin
    for i in 1 .. 100000
    loop
     insert into t values (i);  
end loop;
  commit;
end;
/

 

 

———————————————

 

  • 飞机速度:

insert into t select rownum from dual connect by level<=100000;

———————————————

 

  • 火箭速度:

create table t as select rownum x from dual connect by level<=10000000;

———————————————

 

  • 通过16cup并行执行,飞船速度:

 

create table t nologging parallel 64

 

as select rownum x from dual connect by level<=10000000;

———————————————

 

 

 

Comment

*

沪ICP备14014813号

沪公网安备 31010802001379号