[20140513]无用的dml语句.txt
--昨天需要使用logminer挖掘一些信息,发现生产系统存在大量的DML是无用的垃圾,到底开发是什么测试,了解oracle多少。
--这个让我想起多年以前的一个项目,程序使用的操作方式是先delete删除,然后简单的insert插入信息的方式,这个要产生大量
--日志,花了大量的精力才说服对方修改这样操作方式。
/* Formatted on 2014/5/13 8:58:20 (QP5 v5.252.13127.32867) */
SELECT sql_redo
FROM ( SELECT SCN,
timestamp "Time Stamp",
log_id "Log ID",
seg_type_name "Segment Type Name",
seg_owner "Segment Owner",
seg_name "Segment Name",
table_space "Tablespace",
abs_file# "Abs File #",
row_id "Row ID",
session# "Session #",
serial# "Serial #",
session_info "Session Info",
username "Username",
operation "Operation",
sql_redo ,
sql_undo "SQL Undo",
Info "Info",
status "Status"
FROM V$LOGMNR_CONTENTS
WHERE sql_redo = sql_undo AND sql_redo 'Unsupported'
ORDER BY sql_redo)
--我检查发现许多update语句是在做无用功。
update "XXXXXXXX"."EMR_BL04" set "FJLX" = '1', "FJGL" = '0' where "FJLX" = '1' and "FJGL" = '0' and ROWID = 'AAAOmGAAPAALT+hAAh';
--可以发现并没有修改信息。