› Fóruns › Banco de dados Oracle › Monitorar andamento de procedure
- Este tópico contém 3 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 7 meses atrás por
fsitja.
-
AutorPosts
-
9 de dezembro de 2009 às 11:03 pm #91454
thiagofm
ParticipanteAmigos estou com o seguinte problema
Tenho uma procedure pra ir tratando dados e inserindo em tabelas
A procedure vai trabalhar com arquivos de cerca de 80mil linhas
Estou usando o sqlloader para dar carga inical em uma tabela temporaria e de la trabalhar os dadosGostaria de ao longo da execucao dessa procedure eu pudesse ir consultando registros que foram inseridos
So que para fazer isso eu teria que inserir dados em uma tabela de log e comitar esses dados, e na minha procedure original eu so comito ao final…
entao a questao é: como inserir dados em uma tabela de log e comitar sem comitar a transacao principal?obrigado!
9 de dezembro de 2009 às 11:10 pm #91455MauroLacerda
ParticipanteO TKPROF não te ajuda?
Abs.
9 de dezembro de 2009 às 11:11 pm #91456MauroLacerda
ParticipanteTem o blog de um colega aqui no GPO que poderá te ajudar.
https://profissionaloracle.com.br/blogs/ … -e-porque/
Abs.
9 de dezembro de 2009 às 11:38 pm #91457fsitja
Participante[quote=”thiagofm”:3963vejj]Amigos estou com o seguinte problema
Tenho uma procedure pra ir tratando dados e inserindo em tabelas
A procedure vai trabalhar com arquivos de cerca de 80mil linhas
Estou usando o sqlloader para dar carga inical em uma tabela temporaria e de la trabalhar os dadosGostaria de ao longo da execucao dessa procedure eu pudesse ir consultando registros que foram inseridos
So que para fazer isso eu teria que inserir dados em uma tabela de log e comitar esses dados, e na minha procedure original eu so comito ao final…
entao a questao é: como inserir dados em uma tabela de log e comitar sem comitar a transacao principal?obrigado![/quote]
Daria para fazer uma gambiarra, tipo:
Criar triggers nessas tabelas onde você insere, define essas triggers sendo pragma autonomous transaction, e nela você pega os registros recém inseridos e dá um insert numa tabela “réplica” de log. No fim da trigger você pode dar commit e apenas a transação “filha” vai ser gravada.
Só que se você der rollback na transação principal, já era. Não vai sair da tabela log pois ela dá o commit em uma transação separada (autônoma, como diz o nome).
Pode usar para brincar e testar tranquilo, mas vai pesar o desempenho no procedimento, é claro, pois você vai estar inserindo duplicado em tudo via trigger pra each row.
Referência:
http://download.oracle.com/docs/cd/E118 … pragma.htm[]’s,
Francisco. -
AutorPosts
- Você deve fazer login para responder a este tópico.
› Fóruns › Banco de dados Oracle › Monitorar andamento de procedure