? Låsläge är frustrerande . Om du begär tillgång till specifik information om din dator , till exempel , kan datorn inte ge dig tillgång när ett dödläge inträffar . A låsningar uppstår i Oracle när två sessioner försöker använda samma resurs . Felkoden " ORA - 00060 " signalerar ett dödläge i Oracle . De fyra huvudsakliga typer av låsningar i Oracle är allmänna , självständig transaktion , bitmap index och unindexed främmande nyckel . Allmän Deadlock
En allmän dödläge uppstår i Oracle då två oberoende sessioner behöver tillgång till samma resurs samtidigt . Varje session väntar på den andra sessionen att frigöra resursen. I slutändan väljer Oracle godtyckligt en av sessionerna och producerar ett fel . Olyckligtvis får även om en session ett fel , förblir den resurs den använder låst. För att undvika denna typ av dödläge , måste alla Oracle kodning skrivas så att processerna alltid sker i samma ordning . Med andra ord , måste användarna koda alla processer som börjar med samma resurs och gå igenom de andra resurser i nummerordning . Addera autonoma Transaction
En självständig transaktion är en session som är programmerad för att styra en andra session i sig själv. Dödlägen hända i en självständig transaktion när den sekundära sessionen och den överordnade session konkurrerar om samma resurser . Som en allmän dödläge , båda sessionerna invänta frisläppandet av en resurs innan de släpper sina nuvarande resurser . Oracle producerar därefter en kod dödläge fel , men återigen resurserna förblir låsta . Som en allmän dödläge , är en självständig transaktion dödläget resultatet av inkonsekventa kodning praxis . Genom att säkerställa alla processer startar vid en given resurs och framsteg i ordning , kommer en autonom dödläge uppstår inte .
Bitmap Index
En bitmap index används när data lagras och mycket lite data manipulation förekommer . En bitmap index dödläge uppstår när data manipulation görs på tabellrader som används av den bitmap index . Dödläget orsakas av index block är i bruk när data manipulation försökt . Tyvärr är denna typ av dödläge nästan oundvikligt . Vissa data manipulation alltid kommer att behövas för en bitmap index , även om det är bara att uppdatera indexet . Behovet av data manipulation gör detta dödläge typ svårt att undvika . Addera Unindexed Foreign Key
En unindexed främmande nyckel är en vanlig orsak till dödläget i Oracle , men även är en lätt fast orsak . Processen för detta dödläge innebär en överordnad post försöker komma åt informationen i en subtable . En subtable , eller barn bord är ett bord i den ursprungliga överordnade posten . Den unindexed främmande nyckel i den underordnade tabellen . I ett försök att utföra underhåll , låser Oracle hela barnet tabellen , vilket ökar möjligheten för ett dödläge uppstår . Det bästa sättet att se till att denna typ av dödläge inte sker är att indexera alla nycklar .