? Deadlocks são frustrantes . Se você solicitar o acesso a informações específicas sobre o seu computador , por exemplo, o computador pode não lhe fornecer o acesso quando um impasse acontece. A impasses ocorre no Oracle , quando duas sessões de tentar usar o mesmo recurso. O código de erro " ORA- 00060 " sinaliza um impasse no Oracle. Os quatro principais tipos de impasses no Oracle são , operação autônoma, índice geral de bitmap e de chave estrangeira não indexados . Geral Impasse
Um impasse geral ocorre no Oracle , quando duas sessões independentes precisam acessar o mesmo recurso ao mesmo tempo . Cada sessão de espera para a outra sessão para liberar o recurso . No fim das contas , a Oracle arbitrariamente seleciona uma das sessões e produz um erro. Infelizmente , apesar de uma sessão recebe um erro, o recurso que utiliza permanece bloqueado. A fim de evitar esse tipo de impasse, todos codificação Oracle deve ser escrito de forma que os processos ocorrem sempre na mesma ordem . Em outras palavras , os usuários devem codificar todos os processos para começar com o mesmo recurso e continuar com as outros recursos em ordem numérica.
Transação Autónoma
Uma transação autônoma é um sessão que está programado para operar uma segunda sessão de dentro de si. Impasses acontecer em uma transação autônoma quando a sessão secundário ea sessão pai competem pelos mesmos recursos. Tal como acontece com um impasse geral, ambas as sessões esperam a liberação de um recurso antes de lançar seu recurso atual . A Oracle , em seguida, produz um código de erro impasse, mas mais uma vez os recursos permanecem bloqueados . Tal como acontece com um impasse geral, um impasse transação autônoma é o resultado de práticas de codificação inconsistentes. Ao assegurar que todos os processos começam em um determinado recurso e progresso em ordem, um impasse autônomo não irá ocorrer.
Bitmap Index
Um índice bitmap é usado quando os dados são armazenados e muito pouca manipulação de dados ocorre . Um impasse índice bitmap ocorre quando a manipulação de dados é tentada em linhas de tabela que são usados por que o índice de bitmap. O impasse é causado por blocos de índice estar em uso quando a manipulação de dados é tentada. Infelizmente , esse tipo de impasse é quase inevitável . Alguns manipulação de dados sempre será necessário para um índice de bitmap, mesmo que seja apenas para atualizar o índice. A necessidade de manipulação de dados faz com que este tipo de impasse difícil de evitar.
UnIndexed Chave Estrangeira
Uma chave estrangeira não indexados é uma causa comum de impasse no Oracle, mas também é uma causa facilmente corrigido . O processo deste impasse envolve um registro pai tentando acessar informações de uma sub-tabela . A sub-tabela , ou tabela filho, é uma tabela dentro do registro pai original. A chave estrangeira é não indexados na tabela filho . Na tentativa de realizar a manutenção , a Oracle bloqueia toda a tabela filho , o que aumenta a possibilidade de um impasse de ocorrer. A melhor maneira de assegurar este tipo de impasse não ocorre é indexar todas as chaves.