ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 思维之道 --读《质量.软件.管理 系统思维》(3)

思维之道 --读《质量.软件.管理 系统思维》(3)

原创 Linux操作系统 作者:husthxd 时间:2009-08-26 23:11:27 0 删除 编辑

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 -- 为何难以驾驭兼论Oracle优化器的演化。--


为何总是难以驾驭?因为随着计算过程中影响的因素不断增加,计算工作地复杂度也会相应增加,而且其增长速度是非线性的。比如我们玩中国象棋,一开始的时候影响棋盘因素有限,可能的结果不多,可预测性也就越高,控制或驾驭局面就相对较为容易,但随着棋局的不断深入,影响棋盘的因素越来越多,局面越来越复杂,可能会发生的结果也就越来越多并逐渐超出人的智力所能控制的范围,驾驭自然就更为困难了。

对于中国象棋而言,虽然复杂,但所有可能的结果是可以根据目前对阵双方的信息穷举,知道所有的结果,局面相对来说还是易于驾驭的,而对于项目管理来说,首先目前的情况是否完整还不能确定,其次可能发生的结果更难预测了,项目难以驾驭的一个原因正在于此。个人认为PM通过了解目前项目的信息,预测可能发生的结果,从而做出决策是项目管理中富有技术含量的工作,因为在这过程中包含了如何尽可能的了解信息、如何识别和分析信息、如何预测结果以及如何应对可能发生的情况等等一系列的工作,是对PM项目管理素质的综合考量。

既然项目可能出现的情况难以穷举,对于目前掌握的情况,我们如何应对呢?解决方案是应用一般规则解决,比如,进度滞后了,这时候通常的做法就是把任务尽可能的拆分成互不相关的子任务追加资源并行工作,这只是一般规则而已,至于如何决策,那就是见仁见智了,不同的PM可能会做出完全相反的决策。这种方法可以认为是一种定性分析方法,决策更多的是靠PM拍脑袋或者很多人一起拍脑袋做出来的。对于更为复杂的情况,我们就需要用科学的方法对当前情况进行定量分析以对决策提供数据支持,比如挣值法就是一种很有效的定量分析方法。

对于定性分析向定量分析的转变,我们不妨以Oracle优化器的演化作为例子加以说明。Oracle的优化器一开始是RBORBO是指基于规则的优化器模式,意思是设定一系列的规则,不管是什么SQL,都按这个规则产生执行计划,这种方法其实就是定性分析方法,试图利用专家的经验对SQL的最优执行计划做出预测。一开始,使用这种规则还能够解决80%的问题,但到后来随着Oracle版本的不断升级,SQL越来越复杂,SQL的特性越来越多,可能产生的执行计划如果还是应用规则就只能解决50%左右的问题了,这时候基于成本的优化器模式CBO应运而生。CBO的原理很简单,就是利用数据库和SQL的相关信息,包括数据库参数、表统计信息、索引统计信息等等穷举SQL的执行计划并计算每个计划的成本,通过定量比较后选择一个最优的执行计划。这里也就解释了尽可能保持统计信息“新鲜”有多重要:没有统计信息,CBO什么都不是。当然,出于成本的考虑,Oracle也不会真的穷举所有的执行计划,在适当的时候--Oracle认为已经找到最优的执行计划--会停止穷举,这是对穷举的成本和尽可能获取最优的执行计划之间做了一次权衡,也就是说CBO得出来的执行计划不一定是最优的。之后在9i10gCBO所依赖的基础信息中加入了主机信息等诸如此类的措施无一不是为了尽可能的搜集信息从而尽可能快的获取最优执行计划而作出的改进。从Oracle优化器的演化过程说明了使用科学量化的数据比拍脑袋所得出的结果要好很多。

项目管理相对于SQL的执行计划因为信息不完全,亦无法穷举将来的结果,情况会更为复杂,这时候如何作出正确的决策?这正是PM的核心价值所在了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6906/viewspace-613329/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 青岛-2009
请登录后发表评论 登录
全部评论
长期从事政务、金融等行业产品研发和架构设计工作,ITPUB数据库版块资深版主,对Oracle、PostgreSQL以及大数据等相关技术有深入研究。现就职于广州云图数据技术有限公司,系统架构师。

注册时间:2007-12-28

  • 博文量
    1226
  • 访问量
    3695929