Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> software >> Software Database >> .

Quali sono le cause di un deadlock con Oracle ?

I deadlock sono frustranti . Se si richiede l'accesso a informazioni specifiche sul computer, ad esempio , il computer non può fornire con l'accesso quando un deadlock accade . Un deadlock si verifica in Oracle quando due sessioni tentano di utilizzare la stessa risorsa . Il codice di errore " ORA- 00060 " segnala una situazione di stallo in Oracle . I quattro principali tipi di deadlock in Oracle sono , transazione , indice bitmap autonomo generale e chiave esterna non indicizzata . Deadlock Generale

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