浅析审计数据分析中Oracle数据库两个常用命令的运用
郭志鸿(审计署驻广州特派办)
【发布时间:2010年11月26日】
字号:【大】 【中】 【小】
    
    
    随着企业的信息化程度不断提高,信息系统在企业中的渗透程度是越来越高。可以说,没有信息系统,企业基本上无法运行。支撑这些信息系统的背后,是庞大的企业数据库,企业的各种业务实际上就变成了数据库里面一条一条的数据。在信息化条件下开展审计工作,数据分析是非常重要的手段,不仅可以把审计人员从复杂的账本中解放出来,节约时间,更可以提供有用的审计线索,提高审计效率。
    笔者近期参加了某审计项目的数据分析工作。被审计单位使用的是目前主流的oracle数据库。在对数据进行分析的过程中,绝大多数SQL命令都是常用的命令。不过在分析工作中也遇到了一些问题,经过笔者的总结分析,将其中的一些典型的问题归纳如下。
    一、between …and 命令
    该命令主要用来限制查询的范围。这个命令看似简单,其实还是暗藏“陷阱”。原来,根据编译器不同,between…and命令查询会有有3种不同结果,比如 between A and B 这个命令中,最终结果就会出现包含 A和B,只包含A以及只包含B三种情况,即边界条件是否包含在查询结果中会存在异同。在具体工作中若不了解这个情况,很容易就将边界条件的数据忽略,进而对数据分析的准确性和完整性造成影响。笔者在windows XP环境下使用PL/SQL来查询,其结果是包含了A和B两个边界条件。在不清楚的情况下建议使用<= 、>= 等符号来确定使用者要包含的边界条件,以保证分析结果的准确性和完整性。
    二、alter session force parallel query parallel 4 并行查询命令
    目前一般服务器都配有多个CPU,并行可以有效的将这些CPU利用起来,但需要较长时间完成的查询缩短时间。由于数据结构的缘故,审计人员往往要多表连接查询,所耗费时间较大,用并行查询命令正好可以解决这个问题。并行简单来说就是将表分成多块,每个查询读取其中一块,查询出结果后再把结果合并。这样,原来一个CPU完成的工作现在变成多个CPU共同完成,速度自然提高。需要特别指出的是,并行基本上会占去绝大多数的CPU资源和I/O资源,在服务器空闲时使用最好,以免影响其他人使用。所开并行个数一般为2的倍数,且不超过8个。(郭志鸿)
【关闭】    【打印】