Safelock frustrerend . Als u toegang tot specifieke informatie over uw computer te vragen , bijvoorbeeld , de computer niet kan u voorzien van de toegang bij een impasse gebeurt . Een impasses treedt in Oracle wanneer twee sessies proberen om dezelfde bron te gebruiken . De foutcode " ORA - 00060 " signaleert een impasse in Oracle . De vier belangrijkste soorten van impasses in Oracle zijn algemeen , autonome transactie , bitmap index en niet-geïndexeerde foreign key . Algemeen Deadlock Een algemene deadlock optreedt in Oracle wanneer twee onafhankelijke sessies nodig hebben om toegang te krijgen tot dezelfde bron op hetzelfde moment . Elke sessie wacht op de andere zitting aan de bron los . Op het einde, Oracle willekeurig selecteert een van de sessies en geeft een foutmelding . Helaas , ook al een sessie een fout ontvangt , de resource gebruikt het blijft vergrendeld. Om dit soort impasse te vermijden , moeten alle Oracle codering zodanig geschreven dat processen steeds in dezelfde volgorde . Met andere woorden , moeten gebruikers alle processen te starten met dezelfde middelen en verder door de andere middelen in numerieke volgorde te coderen. Autonome Transaction Een autonome transactie is een sessie die is geprogrammeerd om een tweede sessie opereren binnen zichzelf . Impasses gebeuren in een autonome transactie wanneer de secundaire sessie en de ouder sessie concurreren om dezelfde middelen . Net als bij een algemene patstelling , beide sessies wachten op de release van een resource voordat ze geven hun huidige bron . Oracle levert vervolgens een impasse foutcode , maar nogmaals de bronnen blijven vergrendeld. Als een algemene impasse , autonome transactie impasse is het gevolg van inconsistente codering praktijken . Door ervoor te zorgen alle processen beginnen bij een bepaalde hulpbron en vooruitgang in orde is, zal een autonome deadlock niet optreden . Bitmap Index Een bitmap index wordt gebruikt wanneer gegevens worden opgeslagen en zeer weinig gegevens manipulatie plaatsvindt . Een bitmap index deadlock optreedt wanneer het manipuleren van gegevens wordt geprobeerd op tafel rijen die worden gebruikt door die bitmap index . De impasse wordt veroorzaakt door index blokken zijn in gebruik bij het manipuleren van gegevens wordt geprobeerd. Helaas is dit soort impasse bijna onvermijdelijk . Sommige data manipulatie altijd nodig zullen zijn voor een bitmap index , ook al is het alleen maar om de index bij te werken . De noodzaak voor het manipuleren van gegevens maakt dit soort impasse moeilijk te vermijden . Geïndexeerde Foreign Key Een niet-geïndexeerde foreign key is een veel voorkomende oorzaak van impasse in Oracle , maar ook is een gemakkelijk vast oorzaak . Het proces van deze impasse gaat om een bovenliggende record proberen om toegang tot informatie in een subtabel . Een subtabel , of een kind tafel is een tafel binnen de oorspronkelijke bovenliggende record . De niet-geïndexeerde foreign key is in de onderliggende tabel . In een poging om onderhoud , Oracle vergrendelt het gehele onderliggende tabel , die de mogelijkheid vergroot voor deadlock optreden . De beste manier om te zorgen dat dit soort impasse niet gebeurt is te indexeren alle toetsen .
|