суббота, 21 января 2017 г.

Быстрый старт Oracle GG IExtract or IReplicat

Для быстрого старта Integrated Replicat или Extract в Oracle GG применяли такую оптимизацию internal SQL с помощью SQLPatch

DECLARE
    sql_text      clob := 'SELECT c.capture_name,      xo.queue_owner || ''.'' || xo.queue_name 
FROM all_xstream_outbound xo,all_capture c  WHERE xo.capture_name =
c.capture_name AND        server_name = SUBSTR(UPPER(''OGG$EXIEKS''),1,
30)'
;
    hints         VARCHAR2(1000) := 'PARALLEL(4)';
    description   VARCHAR2(100) := 'GG sql patch for IE';
    name          VARCHAR2(100) := 'GG_IE_SQL_PATCH';
    output        VARCHAR2(100);
    sqlpro_attr   sys.sqlprof_attr;
BEGIN
    sqlpro_attr := sys.sqlprof_attr(
        hints
    );
    output := sys.dbms_sqltune_internal.i_create_sql_profile(
        sql_text      => sql_text,
        profile_xml   => dbms_smb_internal.varr_to_hints_xml(
            sqlpro_attr
        ),
        name          => name,
        description   => description,
        category      => 'DEFAULT',
        creator       => 'SYS',
        validate      => true,
        type          => 'PATCH',
        force_match   => true,
        is_patch      => true
    );

    dbms_output.put_line(
        output
    );
END;
/

В итоге все запрос теперь выполняются с применением патча.


SELECT c.capture_name,       xo.queue_owner || '.' || xo.queue_name   FROM all_xstream_outbound xo, all_capture c  WHERE xo.capture_name =  c.capture_name AND        server_name = SUBSTR(UPPER('OGG$EXIEKS123'), 1,  30)
2017-01-15/11:43:21
GG_IE_SQL_PATCH
SELECT c.capture_name,       xo.queue_owner || '.' || xo.queue_name   FROM all_xstream_outbound xo, all_capture c  WHERE xo.capture_name =  c.capture_name AND        server_name = SUBSTR(UPPER('OGG$EXIEKS124'), 1,  30)
2017-01-15/11:43:52
GG_IE_SQL_PATCH
SELECT c.capture_name,       xo.queue_owner || '.' || xo.queue_name   FROM all_xstream_outbound xo, all_capture c  WHERE xo.capture_name =  c.capture_name AND        server_name = SUBSTR(UPPER('OGG$EXIEKS125'), 1,  30)
2017-01-15/11:43:58
GG_IE_SQL_PATCH


 Старт IExtract вместо 30 минут выполняется за 2 минуты после создания SQLPatch. 

Комментариев нет: