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

Webcenter Content - Jython to Checkin Content with Attachments (CHECKIN_NEW_WITH_RENDITIONS)

In the last few days, i had to load a content that, by its requirements, needs to attach files to the content. My first alternative would be Batch Loading, however for the bacth loder file it was not possible because it does not actually support the rendition service. With the next option, i tried to use the IdcCommand, but still had many problems, such as errors below: sample hda file: [oracle @ hostname bin] $ cat idctst.txt @Properties LocalData IdcService = EDIT_RENDITIONS dID = 37020 renditionKeys = addRendition0 addRendition0.name = test543 addRendition0.action = edit addRendition0.file = test.txt addRendition0.file: path = / u01 / oracle / domains / content_domain / ucm / cs / vault / ~ temp / test.txt @end << EOD >> Executing: [oracle @ hostname bin] $ ./IdcCommand -f idctst.txt -u sysadmin -l log.log -c server Error: Java HotSpot (TM) 64-Bit Server VM warning: Using the ParNew young collector with the Serial old collector is deprecated and w

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'