AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sinn von commitretaining

Ein Thema von idefix2 · begonnen am 14. Jun 2010 · letzter Beitrag vom 14. Jun 2010
Antwort Antwort
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

Sinn von commitretaining

  Alt 14. Jun 2010, 14:03
Datenbank: Firebird • Version: 2.1 • Zugriff über: UIB
Hallo,
gibt es eigentlich einen Unterschied zwischen
commitretaining
und
commit mit anschliessendem neuen Transaktionsstart?
Oder ist das nur eine "abgekürzte Schreibweise"?

Wenn ich sehr viele Aktionen in der Datenbank habe (meherere 100.000 beim Datenimport), sollte ich besser zwischendurch ca alle 1000 Aktionen ein commit mit
anschliessendem neuen Transaction Start ausführen oder ein CommitRetaining? Wenn ich nichts dergleichen mache, wirkt sich das negativ auf die Performance aus?

Und eine dazupassende zweite Frage:
Wird eine Transaktion durch Rollback automatisch geschlossen, oder bleibt sie weiter aktiv?
Das Rollback geht ja nur bis zum letzten CommitRetaining zurück?
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Sinn von commitretaining

  Alt 14. Jun 2010, 14:12
Wird eine Transaktion durch Rollback automatisch geschlossen, oder bleibt sie weiter aktiv?
Ein Rollback macht - wie der Name sagt - die Rolle rückwärts, sprich alle seit dem letzten Commit gemachten Änderungen rückgängig und schließt obendrein die aktuelle Transaktion.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Sinn von commitretaining

  Alt 14. Jun 2010, 14:13
Kommt imho auf die Komponente an. Kennt diese SavePoints würde ich direkt diese verwenden
Markus Kinzler
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#4

AW: Sinn von commitretaining

  Alt 14. Jun 2010, 18:26
Mir ist schon der Unterschied zwischen commitretaining und commit/start transaction nicht wirklich klar. Worin unterscheidet sich jetzt ein savepoint von den beiden?

Wenn ich die Doku richtig verstehe, kann man innerhalb einer Transaktion mehrere Savepoints anlegen und dann ein Rollback zu einem ausgewählten Savepoint machen, statt die ganze Transaktion rückgängig zu machen. Das würde aber bedeuten, das die Transaktion insgesamt riesig wird, bei über 200.000 inserts. Wirkt sich das nicht negativ auf die Performance aus? Ich mache ja vor allem deshalb zwischen durch immer wieder commits, weil ich mir denke, dass die Transaktion irgendwann immer langsamer werden wird, je länger sie wird? Oder ist das nicht der Fall?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Sinn von commitretaining

  Alt 14. Jun 2010, 19:02
Ja ein SavePoint ist eine "Teil"-Transaktion. SavePoints machen also nur Sinn, wenn sie wirklich ein Punkt darstellen, auf den man zurück will.
Der Unterschied zwicshen COMIIT unbd COMMIT RETAINING ist dass bei ersterem der Kontext geschlossen wird ( und u.U. dann auch die Datenmenge) und je nach Komponente ein neuer geöffnet ( DatSet wird dann nicht mehr sichbar geschlossen) und bei dem containing der vorhandene Kontext wiederverwendet wird ( was gewisse Nebeneffekte haben kann)
Markus Kinzler
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#6

AW: Sinn von commitretaining

  Alt 14. Jun 2010, 22:24
Heikoadams, mkinzler,
danke für die Antworten
  Mit Zitat antworten Zitat
Antwort Antwort


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 hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz