? Deadlocks sind frustrierend. Wenn Sie den Zugriff auf bestimmte Informationen auf Ihrem Computer verlangen , zum Beispiel , kann der Computer nicht bieten Ihnen mit dem Zugang , wenn ein Deadlock passiert. Ein Deadlock tritt in Oracle , wenn zwei Sitzungen , um die gleiche Ressource zu nutzen versuchen . Der Fehlercode " ORA- 00060 " signalisiert einen Deadlock in Oracle . Die vier wichtigsten Arten von Deadlocks in Oracle sind die allgemeinen , autonomen Transaktion , Bitmap -Index und indizierten Fremdschlüssel. Allgemeine Deadlock
Eine allgemeine Deadlock tritt in Oracle , wenn zwei unabhängige Sitzungen auf die gleiche Ressource gleichzeitig zugreifen müssen. Jede Sitzung wartet auf der anderen Sitzung , um die Ressource freizugeben . Am Ende , Oracle willkürlich wählt eine der Sessions und erzeugt einen Fehler . Leider , obwohl einer Sitzung eine Fehlermeldung erhält , bleibt die Ressource nutzt gesperrt . Um diese Art von Stillstand zu vermeiden, muss Oracle Codierung so geschrieben werden , dass die Prozesse immer in der gleichen Reihenfolge auftreten . In anderen Worten , müssen die Benutzer codieren alle Prozesse mit der gleichen Ressource zu starten und durch die anderen Ressourcen in numerischer Reihenfolge.
Autonomen Transaktion
Eine autonome Transaktion ist eine Sitzung, die so programmiert ist, eine zweite Sitzung in sich selbst zu betreiben. Deadlocks passieren in einer autonomen Transaktion , wenn der sekundäre Sitzung und die Eltern Sitzung um die gleichen Ressourcen konkurrieren. Wie bei einer allgemeinen Deadlock , erwarten beide Sitzungen die Freigabe einer Ressource , bevor sie ihre aktuellen Ressource freizugeben . Oracle erzeugt dann ein Deadlock Fehlercode , aber wieder einmal die Ressourcen gesperrt bleiben . Wie bei einer allgemeinen Sackgasse, ist eine autonome Transaktion Deadlock das Ergebnis inkonsistent Codierung Praktiken . Durch die Sicherstellung, alle Prozesse beginnen bei einer bestimmten Ressource und Fortschritt in Ordnung ist, wird eine autonome Deadlock nicht auftreten.
Bitmap Index
Ein Bitmap -Index wird verwendet, wenn Daten werden gespeichert und nur sehr wenige Daten Manipulation auftritt. Ein Bitmap -Index Deadlock tritt auf, wenn Datenmanipulation auf dem Tisch Zeilen, die von dieser Bitmap Index verwendet werden versucht wird. Der Deadlock wird durch Indexblöcke in Gebrauch , wenn versucht wird, Daten Manipulation verursacht . Leider ist diese Art von Deadlock fast unvermeidlich . Einige Datenmanipulation immer für eine Bitmap- Index benötigt werden , auch wenn es nur ist , um den Index zu aktualisieren. Die Notwendigkeit zur Datenmanipulation macht diese Art Deadlock schwer zu vermeiden.
UnIndexed Foreign Key
nichtindizierten Fremdschlüssel eine häufige Ursache des Stillstands in Oracle ist, aber es auch ist eine leicht feste Sache. Das Verfahren dieser Deadlock beinhaltet einen übergeordneten Datensatz versucht, Informationen in einer untergeordneten Tabelle zugreifen . Eine untergeordnete Tabelle oder untergeordneten Tabelle ist eine Tabelle innerhalb der ursprünglichen übergeordneten Datensatz . Die indizierten Fremdschlüssel ist in der untergeordneten Tabelle . In einem Versuch , um Wartungsarbeiten durchzuführen , sperrt das gesamte Oracle untergeordneten Tabelle , die die Möglichkeit für einen Deadlock erhöht auftreten. Der beste Weg, um sicherzustellen, dass diese Art von Deadlock tritt nicht auf, ist mit Index alle Schlüssel .