Boa Tarde Everson,
Qual a versão do Oracle está utilizando (standard, enterprise)?
- Caso esteja utilizando enterprise, acredito que possa utilizar tabelas
particionadas na tabela pai para assim somente ler a partição de dados que
esteja fazendo o delete somente.
- Como não informou qual o numero de linhas no qual manipula através desta
operação, acredito que é possível efetuar uma melhorar da deleção caso
implemente deleção numa coleção de dados, utilizando "forall" e "bulk
collect", isso sendo independente da versão do oracle database que você
esteja utilizando.
Link para pesquisa:
https://oracle-base.com/articles/9i/bulk-binds-and-record-processing-9i
Lembrando que para utilizar o bulk collect é necessário estar com as
estatísticas do esquema que esteja utilizando para fazer a leitura dessa
coleção em dias.
São sugestões, pois você não deu mais detalhes sobre o tamanho e nem o
ambiente utilizado.
Att,
Emerson S, Gaudêncio
2016-12-12 15:44 GMT-03:00 Everson Piza eversonp...@hotmail.com [oracle_br]
:
>
>
> Olá amigos,
>
> (oracle 11.2.0.3)
>
>
> Estou enfrentando alguns problemas de contenção TM, mas não estou
> conseguindo achar a solução.
>
>
> Por exemplo.
>
>
> Faço um delete na tabela X, essa tabela X tem FK para outras 8 tabelas,
> mas todas as colunas da tabela X que possuem FK estão indexadas.
>
>
> Até onde eu sei, a falta de índice na tabela 'filha', causa lock em casa
> de alteração no pai, correto? Sendo assim, não vejo oq fazer para prevenir
> esse tipo de contenção.
>
>
> Vocês podem me ajudar?
>
>
> Obrigado.
>
> Everson
>
>
>