Heim Datenbank Oracle Detaillierte grafische und textliche Erläuterung der Oracle-Sperrtabellenlösungen

Detaillierte grafische und textliche Erläuterung der Oracle-Sperrtabellenlösungen

Aug 17, 2022 pm 06:13 PM
oracle

Dieser Artikel vermittelt Ihnen relevantes Wissen über Oracle Bei der Entwicklung von Oracle-Datenbanken stoßen wir häufig auf Oracle-Datentabellen, die häufig verwendet werden, und Oracle-Sperrtabellen werden hier angezeigt. Ich hoffe, diese Informationen über die Methode wird für jeden hilfreich sein.

Detaillierte grafische und textliche Erläuterung der Oracle-Sperrtabellenlösungen

Empfohlenes Tutorial: „Oracle-Video-Tutorial“

Ich glaube, jeder kennt das Sperren von Tabellen oder das Sperren von Zeitlimits. Der Grund dafür ist der exklusive Blockierungsmechanismus der Datenbank DML-Anweisung Die Tabellen- oder Zeilendaten werden gesperrt, bis die Transaktion festgeschrieben oder zurückgesetzt wird oder die aktuelle Sitzung zwangsweise beendet wird.

Für unser Anwendungssystem kommt es wahrscheinlich zu einer Tabellensperre, wenn die SQL-Ausführung langsam ist und es keine Zeitüberschreitung gibt (ein SQL wurde aus irgendeinem Grund erfolglos ausgeführt (das Spoon-Tool führt Datenextraktion und Push durch) und Ressourcen wurden nicht freigegeben) Daher ist es auch besonders wichtig, effizientes SQL zu schreiben! Es gibt andere Situationen, in denen eine Tabellensperre auftreten kann, bei der es sich um ein Szenario mit hoher Parallelität handelt. Das durch eine hohe Parallelität verursachte Problem besteht darin, dass Spring-Transaktionen dazu führen, dass Datenbanktransaktionen nicht festgeschrieben werden und einen Deadlock verursachen (die aktuelle Transaktion wartet darauf, dass andere Transaktionen Sperrressourcen freigeben). )! Dadurch wird die Ausnahme java.sql.SQLException: Sperrwartezeitüberschreitung überschritten; ausgelöst.

Wie kann man also die Sperrtabelle oder das Sperrzeitlimit lösen? Die vorübergehende Lösung besteht darin, die Tabelle oder Anweisung herauszufinden, die um die Sperrressource konkurriert, die aktuelle Sitzung oder Sitzung direkt zu beenden und die Freigabe der Sperrressource zu erzwingen. Zum Beispiel

Die Lösung lautet wie folgt:

1 ändert ein bestimmtes Datenelement, sendet jedoch nicht den Datensatz der nicht festgeschriebenen Transaktion

2. Sitzung2 versucht, es zu ändern

Wir können die Änderung sehen. Die Datensätze nicht festgeschriebener Transaktionen befinden sich in einem Wartezustand, bis die andere Partei die Sperrressource freigibt oder Sitzung1 zwangsweise schließt. Dies zeigt auch, dass Oracle Sperren auf Zeilenebene erreicht hat!

Dies ist nur eine einfache Simulation der Tabellensperrsituation. Sie können auf einen Blick erkennen, dass es sich um die durch Sitzung1 verursachte Tabellensperre handelt. Wenn diese Situation in der tatsächlichen Entwicklung auftritt, wird SQL im Allgemeinen verwendet, um direkt die Tabellen oder Anweisungen zu ermitteln, die um Sperrressourcen konkurrieren, und die Ressourcen dann zwangsweise freizugeben! !

3. Sitzung3 fragt die Tabellen oder Anweisungen konkurrierender Ressourcen ab und erzwingt die Freigabe von Ressourcen. Die Abfrageergebnisse lauten wie folgt: Nur die ersten beiden Felder sind für die erzwungene Freigabe von Ressourcen nützlich , nachdem

-- 查询未提交事务的session信息,注意执行以下SQL,用户需要有DBA权限才行
SELECT
    L.SESSION_ID,
    S.SERIAL#,
    L.LOCKED_MODE AS 锁模式,
    L.ORACLE_USERNAME AS 所有者,
    L.OS_USER_NAME AS 登录系统用户名,
    S.MACHINE AS 系统名,
    S.TERMINAL AS 终端用户名,
    O.OBJECT_NAME AS 被锁表对象名,
    S.LOGON_TIME AS 登录数据库时间
FROM V$LOCKED_OBJECT L
    INNER JOIN ALL_OBJECTS O ON O.OBJECT_ID = L.OBJECT_ID
    INNER JOIN V$SESSION S ON S.SID = L.SESSION_ID
WHERE 1 = 1
Nach dem Login kopieren

session1 gewaltsam beendet hat, achten Sie auf die Ausführung von session2! Wir werden feststellen, dass das Warten von Sitzung2 sofort beendet und ausgeführt wird! Ich glaube, jeder hat Zweifel, session_id ist 29 und 34, wie kann man feststellen, ob sie zu session1 oder session2 gehören, und sicherstellen, dass session1 beendet wird und session2 die DML-Anweisung erfolgreich ausführen kann?

Tatsächlich ist es sehr einfach Die Beurteilungsmethode ist hier die Ausführung von Sitzung1. Um die Transaktion zu aktualisieren, aber nicht festzuschreiben, können Sie zunächst die Sitzungsinformationen der nicht festgeschriebenen Transaktion abfragen.

Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte grafische und textliche Erläuterung der Oracle-Sperrtabellenlösungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? May 10, 2024 am 03:27 AM

Der Aufbewahrungszeitraum von Oracle-Datenbankprotokollen hängt vom Protokolltyp und der Konfiguration ab, einschließlich: Redo-Protokolle: Wird durch die maximale Größe bestimmt, die mit dem Parameter „LOG_ARCHIVE_DEST“ konfiguriert wird. Archivierte Redo-Protokolle: Bestimmt durch die maximale Größe, die durch den Parameter „DB_RECOVERY_FILE_DEST_SIZE“ konfiguriert wird. Online-Redo-Logs: nicht archiviert, gehen beim Neustart der Datenbank verloren und der Aufbewahrungszeitraum stimmt mit der Instanzlaufzeit überein. Audit-Protokoll: Wird durch den Parameter „AUDIT_TRAIL“ konfiguriert und standardmäßig 30 Tage lang aufbewahrt.

Funktion zur Berechnung der Anzahl der Tage zwischen zwei Daten in Oracle Funktion zur Berechnung der Anzahl der Tage zwischen zwei Daten in Oracle May 08, 2024 pm 07:45 PM

Die Funktion in Oracle zum Berechnen der Anzahl der Tage zwischen zwei Daten ist DATEDIFF(). Die spezifische Verwendung ist wie folgt: Geben Sie die Zeitintervalleinheit an: Intervall (z. B. Tag, Monat, Jahr) Geben Sie zwei Datumswerte an: Datum1 und Datum2DATEDIFF(Intervall, Datum1, Datum2) Gibt die Differenz in Tagen zurück

Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist May 10, 2024 am 01:48 AM

Die Startsequenz der Oracle-Datenbank ist: 1. Überprüfen Sie die Voraussetzungen. 3. Starten Sie die Datenbankinstanz. 6. Überprüfen Sie den Datenbankstatus . Aktivieren Sie den Dienst (falls erforderlich). 8. Testen Sie die Verbindung.

So verwenden Sie das Intervall in Oracle So verwenden Sie das Intervall in Oracle May 08, 2024 pm 07:54 PM

Der Datentyp INTERVAL wird in Oracle zur Darstellung von Zeitintervallen verwendet. Die Syntax lautet INTERVAL <Präzision> <Einheit>. Sie können Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen verwenden, um INTERVAL zu betreiben, was für Szenarien wie das Speichern von Zeitdaten geeignet ist Berechnung von Datumsdifferenzen.

So ermitteln Sie, ob zwei Zeichenfolgen in Oracle enthalten sind So ermitteln Sie, ob zwei Zeichenfolgen in Oracle enthalten sind May 08, 2024 pm 07:00 PM

In Oracle können Sie die verschachtelte INSTR-Funktion verwenden, um zu bestimmen, ob eine Zeichenfolge gleichzeitig zwei Teilzeichenfolgen enthält: Wenn INSTR(string1, string2a) größer als 0 und INSTR(string1, string2b) größer als 0 ist, wird sie einbezogen; andernfalls ist es nicht enthalten.

So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle May 09, 2024 pm 09:33 PM

Um die Anzahl der Vorkommen eines Zeichens in Oracle zu ermitteln, führen Sie die folgenden Schritte aus: Ermitteln Sie die Gesamtlänge einer Zeichenfolge. Ermitteln Sie die Länge der Teilzeichenfolge, in der ein Zeichen vorkommt. Zählen Sie die Anzahl der Vorkommen eines Zeichens, indem Sie die Länge der Teilzeichenfolge subtrahieren von der Gesamtlänge.

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers May 10, 2024 am 04:00 AM

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers: Prozessor: Multi-Core, mit einer Hauptfrequenz von mindestens 2,5 GHz. Für große Datenbanken werden 32 Kerne oder mehr empfohlen. Speicher: Mindestens 8 GB für kleine Datenbanken, 16–64 GB für mittelgroße Datenbanken, bis zu 512 GB oder mehr für große Datenbanken oder hohe Arbeitslasten. Speicher: SSD- oder NVMe-Festplatten, RAID-Arrays für Redundanz und Leistung. Netzwerk: Hochgeschwindigkeitsnetzwerk (10 GbE oder höher), dedizierte Netzwerkkarte, Netzwerk mit geringer Latenz. Sonstiges: Stabile Stromversorgung, redundante Komponenten, kompatibles Betriebssystem und Software, Wärmeableitung und Kühlsystem.

Wie viel Speicher benötigt Oracle? Wie viel Speicher benötigt Oracle? May 10, 2024 am 04:12 AM

Die von Oracle benötigte Speichermenge hängt von der Datenbankgröße, dem Aktivitätsniveau und dem erforderlichen Leistungsniveau ab: zum Speichern von Datenpuffern, Indexpuffern, zum Ausführen von SQL-Anweisungen und zum Verwalten des Datenwörterbuch-Cache. Die genaue Menge hängt von der Datenbankgröße, dem Aktivitätsgrad und dem erforderlichen Leistungsniveau ab. Zu den Best Practices gehören das Festlegen der geeigneten SGA-Größe, die Dimensionierung von SGA-Komponenten, die Verwendung von AMM und die Überwachung der Speichernutzung.

See all articles