› Fóruns › SQL e PL/SQL › UMA LUZ, POR FAVOR!!! › UMA LUZ, POR FAVOR!!!
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!!