Pular para o conteúdo principal

DBMS_COMPARISON

CONN DENILSON/DENILSON@ORCL

SQL> CREATE TABLE teste(x number);
Table created
SQL> CREATE UNIQUE INDEX ix_teste ON teste(x);
Index created
SQL> begin
2 for i in 1..20
3 loop
4 insert into teste(x) values(i);
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed
SQL> COMMIT;
Commit complete

CONN DENILSON/DENILSON@ORCL2
SQL> CREATE TABLE teste(x number);
Table created
SQL> CREATE UNIQUE INDEX ix_teste ON teste(x);
Index created
SQL> begin
2 for i in 1..20
3 loop
4 insert into teste(x) values(i);
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed
SQL> COMMIT;
Commit complete

SQL> DELETE FROM teste WHERE x = 10;
1 row deleted
SQL> COMMIT;
Commit complete

CONN DENILSON/DENILSON@ORCL
SQL> ALTER SESSION SET max_dump_file_size=unlimited;

Session altered.

SQL> ALTER SESSION SET timed_statistics = true;

Session altered.

SQL> ALTER SESSION SET statistics_level = ALL ;

Session altered.

SQL> ALTER SESSION SET tracefile_identifier = dbms_comparison ;

Session altered.

SQL> ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 8';

Session altered.

SQL>
SQL> exec dbms_comparison.create_comparison(comparison_name=>'compare_test', schema_name=>'DENILSON', object_name=>'TESTE',
dblink_name=>'DENILSON',remote_schema_name=>'DENILSON', remote_object_name=>'TESTE', scan_percent=>90);

PL/SQL procedure successfully completed.

SQL>
SQL> set serveroutput on
SQL>
SQL> DECLARE
2 retval dbms_comparison.comparison_type;
3 BEGIN
4 IF dbms_comparison.compare('compare_test', retval, perform_row_dif=>TRUE) THEN
5 dbms_output.put_line('No Differences!!');
6 ELSE
7 dbms_output.put_line('Differences Found!!');
8 END IF;
9 END;
10 /
Differences Found!!

PL/SQL procedure successfully completed.

SQL>
SQL>
SQL> ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF';

Session altered.

SQL>
SQL> select value from v$diag_info where name = 'Default Trace File';

VALUE
-----------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/orcl/orcl/trace/sigfedb_ora_27124_DBMS_COMPARISON.trc


SQL> set linesize 2500
SQL> set null @
SQL> set colsep |
SQL> set linesize 2500
SQL> column COMPARISON_NAME format a16
SQL> INDEX_VALUE format a15


SQL> select * FROM user_comparison_row_dif;

COMPARISON_NAME | SCAN_ID|LOCAL_ROWID |REMOTE_ROWID |INDEX_VALUE |STA|LAST_UPDATE_TIME
----------------|----------|------------------|------------------|---------------|---|-----------------------------
COMPARE_TEST | 4|@ |AAA1lxAAEAAAABlAAJ|10 |DIF|10-JUN-10 09.50.06.785624 AM


exec dbms_comparison.drop_comparison(comparison_name=>'compare_test');


tkprof orcl_ora_27124_DBMS_COMPARISON.trc orcl_ora_4402_DBMS_COMPARISON.txt sys=yes waits=yes sort=execpu

Comentários

Postagens mais visitadas deste blog

Index SKIP SCAN???

Index Skip Scan nada mais é que o "split" logico de um indice composto, ou seja, se sua clausula WHERE não tiver todos os campos do indice composto, ele é dividido em menores sub-indices Exemplo: -------- SQL> create table teste(a number,b number); Table created. SQL> begin 2 for i in 1..1000 3 loop 4 insert into teste values(i, 56); 5 end loop; 6 end; 7 / PL/SQL procedure successfully completed. SQL> create index idx_teste on teste(a,b); Index created. SQL> analyze table teste compute statistics; Table analyzed. SQL> explain plan for select /*+ index_ss(teste idx_teste) */ * from teste where b=56; Explained. SQL> start ?\rdbms\admin\utlxpls.sql -------------------------------------------------------------------------------- | Operation | Name | Rows | Bytes| Cost | Pstart| Pstop | -------------------------------------------------------------------------------- | SELECT STATEMENT | | 1...

Configurar Tamanho de UNDO e tempo de RETENÇÃO (UNDO_RETENTION)

-- Tamanho Undo Atual SELECT SUM(a.bytes) "UNDO_SIZE" FROM v$datafile a, v$tablespace b, dba_tablespaces c WHERE c.contents = 'UNDO' AND c.status = 'ONLINE' AND b.name = c.tablespace_name AND a.ts# = b.ts#; -- Blocos de UNDO por Seg. SELECT MAX(undoblks/((end_time-begin_time)*3600*24)) "UNDO_BLOCK_PER_SEC" FROM v$undostat; --Tamanho do Bloco SELECT TO_NUMBER(value) "DB_BLOCK_SIZE [KByte]" FROM v$parameter WHERE name = 'db_block_size'; -- Select calcula UNDO RETENTION SELECT d.undo_size/(1024*1024) "ACTUAL UNDO SIZE [MByte]", SUBSTR(e.value,1,25) "UNDO RETENTION [Sec]", ROUND((d.undo_size / (to_number(f.value) * g.undo_block_per_sec))) "OPTIMAL UNDO RETENTION [Sec]" FROM ( SELECT SUM(a.bytes) undo_size FROM v$datafile a, v$tablespace b, dba_tablespaces c WHERE c.contents = 'UNDO' ...

OHS 12c noprompt password when stop/start component

cd $OHS_DOMAIN/bin $ ./stopComponent.sh ohs1 Stopping System Component ohs1 ... Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands Reading domain from /u01/oracle/domains/ohs_domain Please enter your password : password Connecting to Node Manager ... Successfully Connected to Node Manager. Killing server ohs1 ... Successfully killed server ohs1 Successfully disconnected from Node Manager. Exiting WebLogic Scripting Tool. Done $ OHS_HOME/oracle_common/common/bin $ wlst.sh readDomain('/u01/oracle/domains/ohs_domain') ohs_domain>cd('/SecurityConfiguration/ohs_domain') set('NodeManagerUsername','weblogic') set('NodeManagerPasswordEncrypted','password') updateDomain() closeDomain() exit() $ ./startComponent.sh ohs1  Starting system Component ohs1 ... Initializing WebLogic Scripting Tool (WLST) ... Welco...