Meinews.de  


Zurück   Meinews.de > Forum > Newsgroups de.comp.lang.* Forum > Newsgroup de.comp.lang.delphi.datenbanken
Registrieren FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Newsgroup de.comp.lang.delphi.datenbanken Lokale und Server-DBs, ODBC und BDE.

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10-31-2009, 01:07 PM
Stefan Graf
 
Beiträge: n/a
Standard Orcale:Locks auf referenzierte Tabellen beim Löschen

Hallo,

ich habe ein DB-Modell unter Oracle 11.1g mit Tabellen, bei denen Felder auf andere Tabellen referenzieren (3ten Grades).
Die Referenzierung erfolgt immer über den Primärschlüssel, für alle referenzierenden Felder gibt es einen passenden Index. Das
funktioniert alles auch soweit gut.

Was mich etwas verwirrt ist die Tatsache, dass wenn ich eine Row aus der Tabelle lösche, für allen referenzierten Tabellen ein Lock
gesetzt wird.

Kann mir jemand sagen warum, und ob man dies irgendwie verhindern kann.
Hintergrund ist, im Normalbetrieb ca. 250 User arbeiten und in gewissen Tabellen sehr oft etwas gelöscht wird. Dadurch ist das
Risiko eines Deadlocks recht hoch.

--
Stefan Graf

Mit Zitat antworten
  #2  
Alt 11-02-2009, 05:21 PM
Lothar Armbrüster
 
Beiträge: n/a
Standard Re: Orcale:Locks auf referenzierte Tabellen beim Löschen

"Stefan Graf" <s.graf2*web.de> writes:

> Hallo,
>
> ich habe ein DB-Modell unter Oracle 11.1g mit Tabellen, bei denen Felder auf andere Tabellen referenzieren (3ten Grades).
> Die Referenzierung erfolgt immer über den Primärschlüssel, für alle
> referenzierenden Felder gibt es einen passenden Index. Das funktioniert alles
> auch soweit gut.
>
> Was mich etwas verwirrt ist die Tatsache, dass wenn ich eine Row aus der
> Tabelle lösche, für allen referenzierten Tabellen ein Lock gesetzt wird.
>
> Kann mir jemand sagen warum, und ob man dies irgendwie verhindern kann.
> Hintergrund ist, im Normalbetrieb ca. 250 User arbeiten und in gewissen
> Tabellen sehr oft etwas gelöscht wird. Dadurch ist das Risiko eines Deadlocks
> recht hoch.
>
> --
> Stefan Graf
>

Oracle muss prüfen, ob durch die Löschung evtl. eine Fremdschlüsselbedingung
verletzt wird. Normalerweise werden in den referenzierten Tabellen aber nur
Leselocks gesetzt. In Oracle blockieren lesende Locks keine schreibenden Locks
und umgekehrt. Deadlocks duch Löschungen sollten also nicht auftreten.
Wenn alle Fremdschlüssel indiziert sind, wird auch nur ein
Datensatz und nicht die gesamte Tabelle gelockt.

HTH,
Lothar

--
Lothar Armbrüster | lothar.armbruester*t-online.de
Hauptstr. 26 |
65346 Eltville |
Mit Zitat antworten
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen
Es ist dir nicht erlaubt, auf Beiträge zu antworten
Es ist dir nicht erlaubt, Anhänge anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Benutzer will Tabellen anlegen und löschen. peter-sesam@arcor.de Newsgroup microsoft.public.de.sqlserver 5 06-02-2009 01:35 PM
Tabellen und Abfragen per Programmcode löschen ??? Artur Schmitt Newsgroup microsoft.public.de.access 4 02-21-2008 12:57 PM
opensuse10.3 + orcale + x-server Achim Klausmann Newsgroup de.comp.os.unix.linux.misc 16 02-08-2008 09:45 AM
Re: Löschen aller Tabellen Peter Singer Newsgroup microsoft.public.de.vb.datenbank 0 02-02-2008 08:19 PM
Seitenumbruch zwischen Tabellen löschen H.Hartwig Newsgroup de.comp.office-pakete.staroffice.writer 24 01-12-2007 03:12 PM


Alle Zeitangaben in WEZ. Es ist jetzt 08:34 AM Uhr.





Powered by: vBulletin Version 3.6.7 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Forum SEO by Zoints