Pular para o conteúdo

Fóruns SQL e PL/SQL UMA LUZ, POR FAVOR!!! UMA LUZ, POR FAVOR!!!

#89511
ramasine
Participante

    Galera,

    Fiz um trace no processo e pude verificar que a parte que esta mais lenta é o insert mesmo, pois esta a usar uma função BLOB e com isso o Oracle usa um componente chamado dbms_lob.createTemporary e é nesse momento que o processo fica mais lento.

    O tal do componente é iniciado por que no insert faz uso de uma função chamada “sdotowkb”.

    Acho que é nesse momento que temos uma lentidão no processo.

    INSERT /* APPEND */ INTO sig_mig_itm_pol
    (mip_id, pla_id, mip_poligono, mip_poligono_wkb,
    mip_inf_int, mip_obs, est_vdo_id) VALUES
    (m_mip_id, m_pla_id, m_geo, sdotowkb (m_geo),NULL, NULL, 3063);

    Trace:

    begin dbms_lob.createTemporary (:1,TRUE, :2); end;

    call count cpu elapsed disk query current rows

    ——- —— ——– ———- ———- ———- ———- ———-

    Parse 2219 0.15 0.16 0 0 0 0

    Execute 2219 1337.09 1849.30 0 0 0 2219

    Fetch 0 0.00 0.00 0 0 0 0

    ——- —— ——– ———- ———- ———- ———- ———-

    total 4438 1337.24 1849.47 0 0 0 2219

    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 55 (recursive depth: 2)

    Alguem sabe se esse componente geralmente pode mesmo causar essa lentidão?

    dbms_lob.createTemporary

    Obrigado!!