从程序变量的定义到领导的层次管理
现在几乎所有的语言,变量的适用范围都有“全局”和“局部”之分。一个变量如果已经定义为全局变量,则在函数和过程内部,要么不能再次定义,要么已经代表完全不同的意义。就是说,变量的管理,在同一个软件的代码里,有严格的层次性和适用范围。全局变量和局部变量绝对不能产生冲突,否则,函数和过程将因为不能区分变量而产生混乱。[@more@]软件是逻辑严谨的知识产品,代码中变量的管理,严格体现了职责、范围的划分,各司其职,各尽其职,不能产生含糊不清的情况。一个组织或单位,无论大小,其管理形式也和变量的管理相似。一个员工有
Oracle block cleanout
cleanout分为2钟,一种是fast commit cleanout,另一种是delayed block cleanout. [@more@]oracle有一个modified block list结构,用来记录每个transaction更改过的block,每个transaction大约可以记录10% buffer cache这么多的modified block。这部分block就是当发生commit的时候,oracle可以根据modified block list定位到那些块并做fast commit cleanout。如果一个transaction修改的块超过10% buffer cache,那么超过的块就执行delayed block cleanout。当做fast commit cleanout时,oracle不会清理 Row locks lb标志位,ITL lck标志位。
oracle lock mechanism internal
在很多其他数据库中,lock实际上是通过一个in-meory lock list来实现的,当有session请求一个lock时,它会锁定lock list,然后去搜索lock list看是否这条记录上有别的lock,如果没有就创建一个lock list entry,然后unlock lock list。[@more@]在oracle中,我们先会定位到修改的记录在哪个block,哪条记录,如果有别的active transaction也是修改这条记录,那么会在enqueue lock fixed array里面创建一个对象(按请求lock的时间顺序),排队等待前一个事务commit或rollback,同时设置timeout时间,如果发生timeout则再去检查请求的lock是否