set pagesi 30 heading on linesi 80 feedback off col snap_id form 999 col snap_timestamp form a28 col snap_name form a40 select * from system.ctwr_snap order by 1; spool ctwr_diff_snap&&snap1._snap&&snap2..txt set heading off feedback off verify off linesi 2000 pagesi 30 trimout on trimspool on ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; SELECT 'Comparing snaps '||&&snap1||' and '||&&snap2 cmd from dual; col snap_id form 999 col snap_timestamp form a28 col snap_name form a40 SELECT snap_id, '-', snap_timestamp, '-', snap_name from ctwr_snap where snap_id in (&&snap1, &&snap2); SELECT 'Table '||snap||' in snap '||&&snap2||' has '||diff||' more rows than in snap '||&&snap1 cmd from ( SELECT &&snap1 s1, &&snap2 s2, 'X$KRCSTAT' snap, (SELECT count(*) FROM SNAP_X$KRCSTAT WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCSTAT WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCGFE' snap, (SELECT count(*) FROM SNAP_X$KRCGFE WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCGFE WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCFH' snap, (SELECT count(*) FROM SNAP_X$KRCFH WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCFH WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCFDE' snap, (SELECT count(*) FROM SNAP_X$KRCFDE WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCFDE WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCFBH' snap, (SELECT count(*) FROM SNAP_X$KRCFBH WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCFBH WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCEXT' snap, (SELECT count(*) FROM SNAP_X$KRCEXT WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCEXT WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCCDS' snap, (SELECT count(*) FROM SNAP_X$KRCCDS WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCCDS WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCCDR' snap, (SELECT count(*) FROM SNAP_X$KRCCDR WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCCDR WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCCDE' snap, (SELECT count(*) FROM SNAP_X$KRCCDE WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCCDE WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'X$KRCBIT' snap, (SELECT count(*) FROM SNAP_X$KRCBIT WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_X$KRCBIT WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'V$TABLESPACE' snap, (SELECT count(*) FROM SNAP_V$TABLESPACE WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_V$TABLESPACE WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'V$DATAFILE' snap, (SELECT count(*) FROM SNAP_V$DATAFILE WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_V$DATAFILE WHERE snap_id = &&snap1) diff FROM DUAL UNION ALL SELECT &&snap1 s1, &&snap2 s2, 'V$DATABASE' snap, (SELECT count(*) FROM SNAP_V$DATABASE WHERE snap_id = &&snap2)-(SELECT count(*) FROM SNAP_V$DATABASE WHERE snap_id = &&snap1) diff FROM DUAL ) WHERE diff<>0; SELECT '********* X$KRCBIT *********' FROM dual; WITH new_snap1 AS ( SELECT inst_id,csno,fno,bno,vercnt FROM SNAP_X$KRCBIT WHERE snap_id=&&snap1 MINUS SELECT inst_id,csno,fno,bno,vercnt FROM SNAP_X$KRCBIT WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT inst_id,csno,fno,bno,vercnt FROM SNAP_X$KRCBIT WHERE snap_id=&&snap1 MINUS SELECT inst_id,csno,fno,bno,vercnt FROM SNAP_X$KRCBIT WHERE snap_id=&&snap2 ) SELECT INDX,INST_ID,CTFBNO,VERCNT,VERTIME,CSNO,FNO,BNO,BCT from SNAP_X$KRCBIT where snap_id=&&snap1 and (inst_id,csno,fno,bno,vercnt) in (select inst_id,csno,fno,bno,vercnt from new_snap1); set heading off WITH new_snap2 AS ( SELECT inst_id,csno,fno,bno,vercnt FROM SNAP_X$KRCBIT WHERE snap_id=&&snap2 MINUS SELECT inst_id,csno,fno,bno,vercnt FROM SNAP_X$KRCBIT WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT inst_id,csno,fno,bno,vercnt FROM SNAP_X$KRCBIT WHERE snap_id=&&snap2 MINUS SELECT inst_id,csno,fno,bno,vercnt FROM SNAP_X$KRCBIT WHERE snap_id=&&snap1 ) SELECT INDX,INST_ID,CTFBNO,VERCNT,VERTIME,CSNO,FNO,BNO,BCT from SNAP_X$KRCBIT where snap_id=&&snap2 and (inst_id,csno,fno,bno,vercnt) in (select inst_id,csno,fno,bno,vercnt from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INDX,INST_ID,CTFBNO,VERCNT,VERTIME,CSNO,FNO,BNO,BCT FROM SNAP_X$KRCBIT WHERE snap_id IN (&&snap1,&&snap2) AND (inst_id,csno,fno,bno,vercnt) IN ( SELECT inst_id,csno,fno,bno,vercnt FROM (SELECT DISTINCT INST_ID,CTFBNO,VERCNT,VERTIME,CSNO,FNO,BNO,BCT FROM SNAP_X$KRCBIT WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY inst_id,csno,fno,bno,vercnt HAVING count(*)>1) ORDER BY inst_id,csno,fno,bno,vercnt, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCCDE *********' FROM dual; WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCCDE WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCCDE WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCCDE WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCCDE WHERE snap_id=&&snap2 ) SELECT INDX,INST_ID,CSNO,BNO,FLAGS,SWITCHCNT,CKP_SCN,CKP_TIM,CKP_THR,CKP_RBA_SEQ,CKP_RBA_BNO,CKP_RBA_BOF from SNAP_X$KRCCDE where snap_id=&&snap1 and indx in (select indx from new_snap1); set heading off WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCCDE WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCCDE WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCCDE WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCCDE WHERE snap_id=&&snap1 ) SELECT INDX,INST_ID,CSNO,BNO,FLAGS,SWITCHCNT,CKP_SCN,CKP_TIM,CKP_THR,CKP_RBA_SEQ,CKP_RBA_BNO,CKP_RBA_BOF from SNAP_X$KRCCDE where snap_id=&&snap2 and indx in (select indx from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INDX,INST_ID,CSNO,BNO,FLAGS,SWITCHCNT,CKP_SCN,CKP_TIM,CKP_THR,CKP_RBA_SEQ,CKP_RBA_BNO,CKP_RBA_BOF FROM SNAP_X$KRCCDE WHERE snap_id IN (&&snap1,&&snap2) AND indx IN ( SELECT indx FROM (SELECT DISTINCT INDX,INST_ID,CSNO,BNO,FLAGS,SWITCHCNT,CKP_SCN,CKP_TIM,CKP_THR,CKP_RBA_SEQ,CKP_RBA_BNO,CKP_RBA_BOF FROM SNAP_X$KRCCDE WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY indx HAVING count(*)>1) ORDER BY indx, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCCDR *********' FROM dual; WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCCDR WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCCDR WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCCDR WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCCDR WHERE snap_id=&&snap2 ) SELECT INDX,INST_ID,CSNO,IDX,CTFBNO from SNAP_X$KRCCDR where snap_id=&&snap1 and indx in (select indx from new_snap1); set heading off WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCCDR WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCCDR WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCCDR WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCCDR WHERE snap_id=&&snap1 ) SELECT INDX,INST_ID,CSNO,IDX,CTFBNO from SNAP_X$KRCCDR where snap_id=&&snap2 and indx in (select indx from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INDX,INST_ID,CSNO,IDX,CTFBNO FROM SNAP_X$KRCCDR WHERE snap_id IN (&&snap1,&&snap2) AND indx IN ( SELECT indx FROM (SELECT DISTINCT INDX,INST_ID,CSNO,IDX,CTFBNO FROM SNAP_X$KRCCDR WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY indx HAVING count(*)>1) ORDER BY indx, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCCDS *********' FROM dual; WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCCDS WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCCDS WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCCDS WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCCDS WHERE snap_id=&&snap2 ) SELECT INDX,INST_ID,CSNO,BNO,FLAGS,FD_FIRST,FD_LAST,FD_EXTCNT,RES_FIRST,RES_EXTCNT,OP,ALO_FIRST,ALO_LAST,ALO_EXTCNT,LASTEXT_NEW_KRCCADX,EXTCNT_NEW_KRCCADX,FNO_KRCCABX,FDEBNO_KRCCABX,CHUNK_KRCCABX,EXTCNT_NEW_KRCCABX,FNO_KRCCFBX,FDEBNO_KRCCFBX,PTR_KRCCFBX from SNAP_X$KRCCDS where snap_id=&&snap1 and indx in (select indx from new_snap1); set heading off WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCCDS WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCCDS WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCCDS WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCCDS WHERE snap_id=&&snap1 ) SELECT INDX,INST_ID,CSNO,BNO,FLAGS,FD_FIRST,FD_LAST,FD_EXTCNT,RES_FIRST,RES_EXTCNT,OP,ALO_FIRST,ALO_LAST,ALO_EXTCNT,LASTEXT_NEW_KRCCADX,EXTCNT_NEW_KRCCADX,FNO_KRCCABX,FDEBNO_KRCCABX,CHUNK_KRCCABX,EXTCNT_NEW_KRCCABX,FNO_KRCCFBX,FDEBNO_KRCCFBX,PTR_KRCCFBX from SNAP_X$KRCCDS where snap_id=&&snap2 and indx in (select indx from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INDX,INST_ID,CSNO,BNO,FLAGS,FD_FIRST,FD_LAST,FD_EXTCNT,RES_FIRST,RES_EXTCNT,OP,ALO_FIRST,ALO_LAST,ALO_EXTCNT,LASTEXT_NEW_KRCCADX,EXTCNT_NEW_KRCCADX,FNO_KRCCABX,FDEBNO_KRCCABX,CHUNK_KRCCABX,EXTCNT_NEW_KRCCABX,FNO_KRCCFBX,FDEBNO_KRCCFBX,PTR_KRCCFBX FROM SNAP_X$KRCCDS WHERE snap_id IN (&&snap1,&&snap2) AND indx IN ( SELECT indx FROM (SELECT DISTINCT INDX,INST_ID,CSNO,BNO,FLAGS,FD_FIRST,FD_LAST,FD_EXTCNT,RES_FIRST,RES_EXTCNT,OP,ALO_FIRST,ALO_LAST,ALO_EXTCNT,LASTEXT_NEW_KRCCADX,EXTCNT_NEW_KRCCADX,FNO_KRCCABX,FDEBNO_KRCCABX,CHUNK_KRCCABX,EXTCNT_NEW_KRCCABX,FNO_KRCCFBX,FDEBNO_KRCCFBX,PTR_KRCCFBX FROM SNAP_X$KRCCDS WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY indx HAVING count(*)>1) ORDER BY indx, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCEXT *********' FROM dual; WITH new_snap1 AS ( SELECT bno FROM SNAP_X$KRCEXT WHERE snap_id=&&snap1 MINUS SELECT bno FROM SNAP_X$KRCEXT WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT bno FROM SNAP_X$KRCEXT WHERE snap_id=&&snap1 MINUS SELECT bno FROM SNAP_X$KRCEXT WHERE snap_id=&&snap2 ) SELECT INST_ID,BNO,USED,SBBNO from SNAP_X$KRCEXT where snap_id=&&snap1 and bno in (select bno from new_snap1); set heading off WITH new_snap2 AS ( SELECT bno FROM SNAP_X$KRCEXT WHERE snap_id=&&snap2 MINUS SELECT bno FROM SNAP_X$KRCEXT WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT bno FROM SNAP_X$KRCEXT WHERE snap_id=&&snap2 MINUS SELECT bno FROM SNAP_X$KRCEXT WHERE snap_id=&&snap1 ) SELECT INST_ID,BNO,USED,SBBNO from SNAP_X$KRCEXT where snap_id=&&snap2 and bno in (select bno from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INST_ID,BNO,USED,SBBNO FROM SNAP_X$KRCEXT WHERE snap_id IN (&&snap1,&&snap2) AND bno IN ( SELECT bno FROM (SELECT DISTINCT INST_ID,BNO,USED,SBBNO FROM SNAP_X$KRCEXT WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY bno HAVING count(*)>1) ORDER BY inst_id, bno, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCFBH *********' FROM dual; WITH new_snap1 AS ( SELECT CTFBNO FROM SNAP_X$KRCFBH WHERE snap_id=&&snap1 MINUS SELECT CTFBNO FROM SNAP_X$KRCFBH WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT CTFBNO FROM SNAP_X$KRCFBH WHERE snap_id=&&snap1 MINUS SELECT CTFBNO FROM SNAP_X$KRCFBH WHERE snap_id=&&snap2 ) SELECT INST_ID,CTFBNO,XFLAGS,XFNO,XCSNO,FLAGS,FNO,BNO,CSNO,VERCNT,VERTIME,HIST_FIRST,HIST_LAST,HIST_EXTCNT,HIST_VERCNT,HIST_VERTIME,CHUNK,LOW_BLURRY,LOW,HIGH,HIGH_BLURRY from SNAP_X$KRCFBH where snap_id=&&snap1 and CTFBNO in (select CTFBNO from new_snap1); set heading off WITH new_snap2 AS ( SELECT CTFBNO FROM SNAP_X$KRCFBH WHERE snap_id=&&snap2 MINUS SELECT CTFBNO FROM SNAP_X$KRCFBH WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT CTFBNO FROM SNAP_X$KRCFBH WHERE snap_id=&&snap2 MINUS SELECT CTFBNO FROM SNAP_X$KRCFBH WHERE snap_id=&&snap1 ) SELECT INST_ID,CTFBNO,XFLAGS,XFNO,XCSNO,FLAGS,FNO,BNO,CSNO,VERCNT,VERTIME,HIST_FIRST,HIST_LAST,HIST_EXTCNT,HIST_VERCNT,HIST_VERTIME,CHUNK,LOW_BLURRY,LOW,HIGH,HIGH_BLURRY from SNAP_X$KRCFBH where snap_id=&&snap2 and CTFBNO in (select CTFBNO from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INST_ID,CTFBNO,XFLAGS,XFNO,XCSNO,FLAGS,FNO,BNO,CSNO,VERCNT,VERTIME,HIST_FIRST,HIST_LAST,HIST_EXTCNT,HIST_VERCNT,HIST_VERTIME,CHUNK,LOW_BLURRY,LOW,HIGH,HIGH_BLURRY FROM SNAP_X$KRCFBH WHERE snap_id IN (&&snap1,&&snap2) AND CTFBNO IN ( SELECT CTFBNO FROM (SELECT DISTINCT INST_ID,CTFBNO,XFLAGS,XFNO,XCSNO,FLAGS,FNO,BNO,CSNO,VERCNT,VERTIME,HIST_FIRST,HIST_LAST,HIST_EXTCNT,HIST_VERCNT,HIST_VERTIME,CHUNK,LOW_BLURRY,LOW,HIGH,HIGH_BLURRY FROM SNAP_X$KRCFBH WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY CTFBNO HAVING count(*)>1) ORDER BY CTFBNO, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCFDE *********' FROM dual; WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCFDE WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCFDE WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCFDE WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCFDE WHERE snap_id=&&snap2 ) SELECT INDX,INST_ID,CTFBNO,CSNO,FNO,FLAGS,CHUNK,CRESCN,CRETIME,CURR_LOWSCN,CURR_HIGHSCN,CURR_FIRST,CURR_LAST,CURR_EXTCNT,CURR_VERCNT,CURR_VERTIME,HIST_FIRST,HIST_LAST,HIST_EXTCNT,HIST_VERCNT,HIST_VERTIME,OLDEST_LOW from SNAP_X$KRCFDE where snap_id=&&snap1 and indx in (select indx from new_snap1); set heading off WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCFDE WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCFDE WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCFDE WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCFDE WHERE snap_id=&&snap1 ) SELECT INDX,INST_ID,CTFBNO,CSNO,FNO,FLAGS,CHUNK,CRESCN,CRETIME,CURR_LOWSCN,CURR_HIGHSCN,CURR_FIRST,CURR_LAST,CURR_EXTCNT,CURR_VERCNT,CURR_VERTIME,HIST_FIRST,HIST_LAST,HIST_EXTCNT,HIST_VERCNT,HIST_VERTIME,OLDEST_LOW from SNAP_X$KRCFDE where snap_id=&&snap2 and indx in (select indx from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INDX,INST_ID,CTFBNO,CSNO,FNO,FLAGS,CHUNK,CRESCN,CRETIME,CURR_LOWSCN,CURR_HIGHSCN,CURR_FIRST,CURR_LAST,CURR_EXTCNT,CURR_VERCNT,CURR_VERTIME,HIST_FIRST,HIST_LAST,HIST_EXTCNT,HIST_VERCNT,HIST_VERTIME,OLDEST_LOW FROM SNAP_X$KRCFDE WHERE snap_id IN (&&snap1,&&snap2) AND indx IN ( SELECT indx FROM (SELECT DISTINCT INDX,INST_ID,CTFBNO,CSNO,FNO,FLAGS,CHUNK,CRESCN,CRETIME,CURR_LOWSCN,CURR_HIGHSCN,CURR_FIRST,CURR_LAST,CURR_EXTCNT,CURR_VERCNT,CURR_VERTIME,HIST_FIRST,HIST_LAST,HIST_EXTCNT,HIST_VERCNT,HIST_VERTIME,OLDEST_LOW FROM SNAP_X$KRCFDE WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY indx HAVING count(*)>1) ORDER BY indx, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCFH *********' FROM dual; WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCFH WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCFH WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCFH WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCFH WHERE snap_id=&&snap2 ) SELECT INDX,INST_ID,FHSWV,FHCVN,FHDBI,FHDBN,FHCSQ,FHFSZ,FHBSZ,FHFNO,FHTYP,FHACID,FLAGS,EXTBLKS,CSCNT,SBBCNT,GFT_FIRST,GFT_LAST,GFT_EXTCNT,RESETSCN,RESETTIME,TRSCN,TRTIME,LOWSCN,SWITCHCNT,MID,CKP_SCN,CKP_TIM,CKP_THR,CKP_RBA_SEQ,CKP_RBA_BNO,CKP_RBA_BOF,CPC,CCC,OP,ALO_FIRST,ALO_LAST,ALO_EXTCNT,RSZ_NEWEXTCNT,EXTNUM_KRCGGFX,LASTEXT_NEW_KRCGGFX,EXTCNT_NEW_KRCGGFX,CSNO_KRCGRSX,FIRSTEXT_NEW_KRCGRSX,EXTCNT_NEW_KRCGRSX from SNAP_X$KRCFH where snap_id=&&snap1 and indx in (select indx from new_snap1); set heading off WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCFH WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCFH WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCFH WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCFH WHERE snap_id=&&snap1 ) SELECT INDX,INST_ID,FHSWV,FHCVN,FHDBI,FHDBN,FHCSQ,FHFSZ,FHBSZ,FHFNO,FHTYP,FHACID,FLAGS,EXTBLKS,CSCNT,SBBCNT,GFT_FIRST,GFT_LAST,GFT_EXTCNT,RESETSCN,RESETTIME,TRSCN,TRTIME,LOWSCN,SWITCHCNT,MID,CKP_SCN,CKP_TIM,CKP_THR,CKP_RBA_SEQ,CKP_RBA_BNO,CKP_RBA_BOF,CPC,CCC,OP,ALO_FIRST,ALO_LAST,ALO_EXTCNT,RSZ_NEWEXTCNT,EXTNUM_KRCGGFX,LASTEXT_NEW_KRCGGFX,EXTCNT_NEW_KRCGGFX,CSNO_KRCGRSX,FIRSTEXT_NEW_KRCGRSX,EXTCNT_NEW_KRCGRSX from SNAP_X$KRCFH where snap_id=&&snap2 and indx in (select indx from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INDX,INST_ID,FHSWV,FHCVN,FHDBI,FHDBN,FHCSQ,FHFSZ,FHBSZ,FHFNO,FHTYP,FHACID,FLAGS,EXTBLKS,CSCNT,SBBCNT,GFT_FIRST,GFT_LAST,GFT_EXTCNT,RESETSCN,RESETTIME,TRSCN,TRTIME,LOWSCN,SWITCHCNT,MID,CKP_SCN,CKP_TIM,CKP_THR,CKP_RBA_SEQ,CKP_RBA_BNO,CKP_RBA_BOF,CPC,CCC,OP,ALO_FIRST,ALO_LAST,ALO_EXTCNT,RSZ_NEWEXTCNT,EXTNUM_KRCGGFX,LASTEXT_NEW_KRCGGFX,EXTCNT_NEW_KRCGGFX,CSNO_KRCGRSX,FIRSTEXT_NEW_KRCGRSX,EXTCNT_NEW_KRCGRSX FROM SNAP_X$KRCFH WHERE snap_id IN (&&snap1,&&snap2) AND indx IN ( SELECT indx FROM (SELECT DISTINCT INDX,INST_ID,FHSWV,FHCVN,FHDBI,FHDBN,FHCSQ,FHFSZ,FHBSZ,FHFNO,FHTYP,FHACID,FLAGS,EXTBLKS,CSCNT,SBBCNT,GFT_FIRST,GFT_LAST,GFT_EXTCNT,RESETSCN,RESETTIME,TRSCN,TRTIME,LOWSCN,SWITCHCNT,MID,CKP_SCN,CKP_TIM,CKP_THR,CKP_RBA_SEQ,CKP_RBA_BNO,CKP_RBA_BOF,CPC,CCC,OP,ALO_FIRST,ALO_LAST,ALO_EXTCNT,RSZ_NEWEXTCNT,EXTNUM_KRCGGFX,LASTEXT_NEW_KRCGGFX,EXTCNT_NEW_KRCGGFX,CSNO_KRCGRSX,FIRSTEXT_NEW_KRCGRSX,EXTCNT_NEW_KRCGRSX FROM SNAP_X$KRCFH WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY indx HAVING count(*)>1) ORDER BY indx, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCGFE *********' FROM dual; WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCGFE WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCGFE WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCGFE WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCGFE WHERE snap_id=&&snap2 ) SELECT INDX,INST_ID,CTFBNO,FNO,FLAGS,SWITCHCNT,SPARE1,SPARE2,SPARE3 from SNAP_X$KRCGFE where snap_id=&&snap1 and indx in (select indx from new_snap1); set heading off WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCGFE WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCGFE WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCGFE WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCGFE WHERE snap_id=&&snap1 ) SELECT INDX,INST_ID,CTFBNO,FNO,FLAGS,SWITCHCNT,SPARE1,SPARE2,SPARE3 from SNAP_X$KRCGFE where snap_id=&&snap2 and indx in (select indx from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INDX,INST_ID,CTFBNO,FNO,FLAGS,SWITCHCNT,SPARE1,SPARE2,SPARE3 FROM SNAP_X$KRCGFE WHERE snap_id IN (&&snap1,&&snap2) AND indx IN ( SELECT indx FROM (SELECT DISTINCT INDX,INST_ID,CTFBNO,FNO,FLAGS,SWITCHCNT,SPARE1,SPARE2,SPARE3 FROM SNAP_X$KRCGFE WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY indx HAVING count(*)>1) ORDER BY indx, snap_id; set heading off SELECT '' FROM DUAL; SELECT '********* X$KRCSTAT *********' FROM dual; WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCSTAT WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCSTAT WHERE snap_id=&&snap2 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap1||' ***' FROM new_snap1; set heading on WITH new_snap1 AS ( SELECT indx FROM SNAP_X$KRCSTAT WHERE snap_id=&&snap1 MINUS SELECT indx FROM SNAP_X$KRCSTAT WHERE snap_id=&&snap2 ) SELECT INDX,INST_ID,OPTIONS,CLEANLIMIT,CKPFREQ,CKPTIME,KRCCP_CURRENT,KRCCP_MAX,EXT_ALLOC_CURRENT_BYTES,EXT_ALLOC_CURRENT_EXTENTS,DBA_BUFFER_COUNT,DBA_BUFFER_COUNT_PUBLIC,DBA_BUFFER_COUNT_PRIVATE,DBA_ENTRY_COUNT_PUBLIC,DBA_ENTRY_COUNT_PRIVATE,DBA_ENTRY_SIZE,DBA_RESIZE_COUNT,DBA_OVERFLOW_MAX_ENTRIES,CHANGE_TOTAL,CHANGE_NOBUF,CHANGE_BUSYBUF,CHANGE_NOPEND,CTWR_EMPTY_THRESHOLD,CTWR_REAP_THRESHOLD,CTWR_CIC_SECONDS,CTWR_ENTER_LOCAL,CTWR_ENTER_IPC,CTWR_LOOP,CTWR_EXIT_EMPTY,CTWR_EXIT_MSG,CTWR_EXIT_TIMEOUT,POST_GATE from SNAP_X$KRCSTAT where snap_id=&&snap1 and indx in (select indx from new_snap1); set heading off WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCSTAT WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCSTAT WHERE snap_id=&&snap1 ) SELECT '*** ' || count(*) || ' new rows in snap '||&&snap2||' ***' FROM new_snap2; set heading on WITH new_snap2 AS ( SELECT indx FROM SNAP_X$KRCSTAT WHERE snap_id=&&snap2 MINUS SELECT indx FROM SNAP_X$KRCSTAT WHERE snap_id=&&snap1 ) SELECT INDX,INST_ID,OPTIONS,CLEANLIMIT,CKPFREQ,CKPTIME,KRCCP_CURRENT,KRCCP_MAX,EXT_ALLOC_CURRENT_BYTES,EXT_ALLOC_CURRENT_EXTENTS,DBA_BUFFER_COUNT,DBA_BUFFER_COUNT_PUBLIC,DBA_BUFFER_COUNT_PRIVATE,DBA_ENTRY_COUNT_PUBLIC,DBA_ENTRY_COUNT_PRIVATE,DBA_ENTRY_SIZE,DBA_RESIZE_COUNT,DBA_OVERFLOW_MAX_ENTRIES,CHANGE_TOTAL,CHANGE_NOBUF,CHANGE_BUSYBUF,CHANGE_NOPEND,CTWR_EMPTY_THRESHOLD,CTWR_REAP_THRESHOLD,CTWR_CIC_SECONDS,CTWR_ENTER_LOCAL,CTWR_ENTER_IPC,CTWR_LOOP,CTWR_EXIT_EMPTY,CTWR_EXIT_MSG,CTWR_EXIT_TIMEOUT,POST_GATE from SNAP_X$KRCSTAT where snap_id=&&snap2 and indx in (select indx from new_snap2); set heading off SELECT '*** Changed rows ***' FROM dual; set heading on SELECT snap_id,INDX,INST_ID,OPTIONS,CLEANLIMIT,CKPFREQ,CKPTIME,KRCCP_CURRENT,KRCCP_MAX,EXT_ALLOC_CURRENT_BYTES,EXT_ALLOC_CURRENT_EXTENTS,DBA_BUFFER_COUNT,DBA_BUFFER_COUNT_PUBLIC,DBA_BUFFER_COUNT_PRIVATE,DBA_ENTRY_COUNT_PUBLIC,DBA_ENTRY_COUNT_PRIVATE,DBA_ENTRY_SIZE,DBA_RESIZE_COUNT,DBA_OVERFLOW_MAX_ENTRIES,CHANGE_TOTAL,CHANGE_NOBUF,CHANGE_BUSYBUF,CHANGE_NOPEND,CTWR_EMPTY_THRESHOLD,CTWR_REAP_THRESHOLD,CTWR_CIC_SECONDS,CTWR_ENTER_LOCAL,CTWR_ENTER_IPC,CTWR_LOOP,CTWR_EXIT_EMPTY,CTWR_EXIT_MSG,CTWR_EXIT_TIMEOUT,POST_GATE FROM SNAP_X$KRCSTAT WHERE snap_id IN (&&snap1,&&snap2) AND indx IN ( SELECT indx FROM (SELECT DISTINCT INDX,INST_ID,OPTIONS,CLEANLIMIT,CKPFREQ,CKPTIME,KRCCP_CURRENT,KRCCP_MAX,EXT_ALLOC_CURRENT_BYTES,EXT_ALLOC_CURRENT_EXTENTS,DBA_BUFFER_COUNT,DBA_BUFFER_COUNT_PUBLIC,DBA_BUFFER_COUNT_PRIVATE,DBA_ENTRY_COUNT_PUBLIC,DBA_ENTRY_COUNT_PRIVATE,DBA_ENTRY_SIZE,DBA_RESIZE_COUNT,DBA_OVERFLOW_MAX_ENTRIES,CHANGE_TOTAL,CHANGE_NOBUF,CHANGE_BUSYBUF,CHANGE_NOPEND,CTWR_EMPTY_THRESHOLD,CTWR_REAP_THRESHOLD,CTWR_CIC_SECONDS,CTWR_ENTER_LOCAL,CTWR_ENTER_IPC,CTWR_LOOP,CTWR_EXIT_EMPTY,CTWR_EXIT_MSG,CTWR_EXIT_TIMEOUT,POST_GATE FROM SNAP_X$KRCSTAT WHERE snap_id IN (&&snap1,&&snap2) ) GROUP BY indx HAVING count(*)>1) ORDER BY indx, snap_id; set heading off SELECT '' FROM DUAL; spool off undefine snap1 undefine snap2 exit