![]() |
Datenbank: MS SQL Server • Version: 2005 • Zugriff über: TADOConnection
kleine Frage zu ADO und Datenbanksperren
Hallo alle miteinander,
Ich bin in Sachen Transaktionen nicht sehr bewandert. Mein Kollege und ich sollen eine Datenbankanwendung schreiben. Es gibt eine Client-Anwendung, die aus dem Web abgerufen wird und ihre Daten im Internet auf einer MS SQL DB speichert. Die Datenbank besteht - wie so oft :) - aus mehreren Tabellen, die nach und nach verändert werden. Änderungen erfolgen mal hier mal da. Wenn die Anwendung beendet wird, muss die DB wieder konsistent sein. Hier empfiehlt sich eine Transaktion zu starten und erst zum Schluss zu committen. Soweit klar. Jetzt gibt es aber auch noch eine Serveranwendung die in regelmäßigen Abständen eine Art Snapshot von einer großen Menge Kundendaten braucht. Wie fange ich das am besten an? Sollte man die Transaktion auf 'serializable' stellen und dann in einem einzigen SELECT alle relevanten Daten laden?? Oder kann man mit ADO auch von vorne herein auf einem Snapshot arbeiten? Hinweis: Für spätere Statistiken sollen nie Daten aus der Datenbank gelöscht werden, was bedeutet das es viele alte Daten gibt, die von meinen SELECTs eh herausgefiltert werden, jedoch können wir so keine Technologie verwenden, die eine Kopie der gesamten Datenbank voraussetzt. (Ich weiß nicht wie so ein Snapshot funktioniert) Viele Dank im Vorraus, Marco btw. die Forensoftware rockt ;) |
Re: kleine Frage zu ADO und Datenbanksperren
Zitat:
|
Re: kleine Frage zu ADO und Datenbanksperren
Sorry, hab mich da undeutlich ausgedrückt. Also der Kunde bekommt seine Anwendung per Java-Webstart bereitgestellt (automatische Updates, Crossplatform, ...). Diese kommuniziert über 'Webservices' mit einem Tomcat-Server auf Server1. Dieser läuft ständig und trägt die Änderungen dann in die DB auf Server2 ein. Auf Server2 läuft schließlich auch die eigentliche Serveranwendung, die aus der DB einen großen Satz konsistenter Daten braucht.
Ich hab ein bisschen gelesen und folgende Möglichkeiten gefunden: MS SQL 2005: SNAPSHOT-Isolationslevel: + Daten immer gleich während meiner Transaktion + Tomcat Server kann weiterhin in die DB schreiben - MS SQL 2005-spezifisch, Datenbank kann nicht umgestellt werden, was aber auf lange Sicht von oben geplant ist. SQL-92: SERIALIZABLE: + Daten immer gleich während meiner Transaktion + Funktioniert mit allen DBs, die den Standard unterstützen - Tomcat-Server und Clients stehen vor verschlossenen Türen Die SERIALIZABLE-Variante würde ich bevorzugen, weil die Serveranwendung ihre Arbeit durchaus Nachts innerhalb weniger Minuten erledigen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz