Un deadlock si verifica in generale di Oracle quando due sessioni indipendenti devono accedere alla stessa risorsa nello stesso momento . Ogni sessione attende l' altra sessione per rilasciare la risorsa. Alla fine, Oracle sceglie arbitrariamente una delle sessioni e produce un errore . Purtroppo , anche se una sessione riceve un errore , la risorsa utilizza rimane bloccato. Per evitare questo tipo di stallo , tutte codifica Oracle deve essere scritto in modo che processi avvengono sempre nello stesso ordine . In altre parole, gli utenti necessario codificare tutti i processi di iniziare con la stessa risorsa e procedere attraverso le altre risorse in ordine numerico .
Autonoma Transaction
Una transazione autonoma è un sessione che è programmato per operare una seconda sessione in sé . Deadlock avvengono in una transazione autonoma quando la sessione secondaria e la sessione genitore competono per le stesse risorse . Come nel caso di una situazione di stallo generale , entrambe le sessioni attendono il rilascio di una risorsa prima di rilasciare il loro risorse corrente . Oracle quindi produce un codice di errore di stallo , ma ancora una volta le risorse rimangono bloccate . Come nel caso di una situazione di stallo generale , una situazione di stallo transazione autonoma è il risultato di pratiche di codifica incoerenti . Assicurando tutti i processi partono da una determinata risorsa e il progresso , al fine , una situazione di stallo autonomo non si verificherà.
Bitmap Indice
Un indice bitmap viene utilizzata quando i dati vengono memorizzati e la manipolazione molto poco di dati si verifica . Un deadlock indice bitmap si verifica quando la manipolazione dei dati è tentata su righe della tabella che vengono utilizzati da tale indice bitmap . La situazione di stallo è causato da blocchi di indice che sono in uso quando la manipolazione dei dati è tentato. Purtroppo , questo tipo di stallo è pressoché inevitabile . Qualche manipolazione dati sempre sarà necessaria per un indice bitmap , anche se è solo per aggiornare l'indice . La necessità per la manipolazione dei dati che rende questo tipo di situazione di stallo difficile da evitare .
Non indicizzati Esteri chiave
Una chiave esterna non indicizzata è una causa comune di deadlock in Oracle , ma è anche è una causa facilmente fisso . Il processo di questa situazione di stallo comporta un record padre cercando di accedere alle informazioni in una sottotabella . Un tavolo sottotabella , o un bambino , è una tabella all'interno del record padre originale . La chiave esterna non indicizzata è nella tabella figlio . Nel tentativo di eseguire la manutenzione , Oracle blocca l'intera tabella figlio , che aumenta la possibilità di un deadlock si verifichi . Il modo migliore per garantire questo tipo di situazione di stallo non si verifica è quello di indicizzare tutti i tasti .
software © www.354353.com