Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Mit der Freeware Version können bis zu 100.000 Datensätze verarbeitet werden!
Flowheater Chart

Datensynchronisierung beschleunigen

  • Andreas Schauerte
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
10 Jahre 10 Monate her - 10 Jahre 10 Monate her #1620 von Andreas Schauerte
Datensynchronisierung beschleunigen - Beitrag(1620) wurde erstellt von Andreas Schauerte
Hallo,
zwischen unserer Warenwirtschaft (DB++ -> ODBC) und einer eigenentwickelten Software (MySQL 5.6) sollen möglichst schnell und mit möglichst geringer Datenbankbelastung mehrmals am Tag Daten abgeglichen werden. (Immer von ODBC -> MySQL)
Bislang verfahre ich z.B. für Adressen wie folgt:
1.) Daten via ODBC in MySQL Tabelle "anschrift_tmp" kopieren. (Vor Import leeren)
2.) Tabelle "anschriften" leeren (MySQL Heater "TRUNCATE TABLE anschrift")
3.) Mittels MySQL Heater "INSERT INTO anschrift SELECT * FROM anschrift_tmp"
Daten von anschrift_tmp in MySQL Tabelle anschrift kopieren
4.) Tabelle anschrift_tmp mittels MySQL Heater leeren ("TRUNCATE TABLE anschrift_tmp")
5.) Danach ein "OPTIMIZE TABLE anschrift"

Dies war nur eine Beispieltabelle. Es werden auf dieselbe Art und weise für mehrere Tabellen Daten kopiert. Teils mit mehreren 10.000 oder 100.000 Datensätzen.
Viele Datensätze bleiben seit dem letzten Abgleich natürlich unverändert, werden jedoch trotzdem jedes Mal gelesen und in die Datenbank geschrieben.

Das ganze funktioniert, allerdings suche ich Optimierungsmöglichkeiten da die Geschwindigkeit zu langsam und Datenbelastung meiner Meinung nach zu hoch sind. Außerdem befürchte ich die Vorteile von MySQL (query-cache usw) durch das leeren der Tabellen nicht ausnutzen zu können.
Haben Sie Anregungen und Tipps für mich, wie ich das ganze optimieren könnte?
Vielen Dank schon vorab!
Letzte Änderung: 10 Jahre 10 Monate her von Andreas Schauerte.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jahre 10 Monate her #1624 von FlowHeater-Team
Hallo Herr Schauerte,

um den Aufwand für eine Datensynchronisation möglichst gering zu halten benötigen Sie ein zusätzliches Feld (TIMESTAMP) in der Ursprungstabelle, sowie müsste entweder die Applikation dieses Feld bei jeder Änderung oder Neuanlage selbst aktualisieren oder aber sie lassen das über einen Datenbanktrigger von der Datenbank automatisch setzen. Evtl. existiert in der Tabelle ein solches Feld für letzte Aktualisierung bereits?
So könnten Sie z.B. eine dynamische Abfrage implementieren die jeweils nur seit der letzten Datensynchronisation die benötigten Daten selektiert und in die MySQL Tabelle überführt.

Wenn das ein gangbarer Weg für Sie erstelle ich Ihnen gerne ein kleines Skript, das den SELECT dynamisch aufbaut und nach der Synchronisation den zuletzt verwendeten TIMESTAMP für die nächste Ausführung speichert.

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Andreas Schauerte
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
10 Jahre 10 Monate her #1625 von Andreas Schauerte
Andreas Schauerte antwortete auf Datensynchronisierung beschleunigen - Beitrag(1625)
Hallo Herr Stark,
danke für den Tipp! Hört sich vielversprechend an! Ich prüfe das ganze und würde ggf. nochmal auf Sie zukommen.
Gruß A. Schauerte

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Andreas Schauerte
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
10 Jahre 10 Monate her #1626 von Andreas Schauerte
Andreas Schauerte antwortete auf Datensynchronisierung beschleunigen - Beitrag(1626)
Guten morgen Herr Stark,
ich habe in Erfahrung bringen können, dass die Datenbank für einige Tabellen Änderungen je Datensatz abspeichert. Z.B. in der Spalte anschrift_aenderung. Hier wird das Datum der Änderung im Format 20140214 gespeichert.
Wären Sie mir bei einem Skript behilflich? Vielen Dank!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
10 Jahre 10 Monate her #1627 von FlowHeater-Team
Hallo Herr Schauerte,

im Anhang finden Sie das Beispiel inkl. einer Access Datenbank . Hier werden 2 .NET Script Heater verwendet um einmal vor dem Start das letzte aktualisierte Datum aus einer Datei „lastchange.txt“ zu lesen. Ist die Datei vorhanden wird daraus das Datum gelesen und es wird der FlowHeater Paramater$LAST$“ gesetzt. Dieser Parameter wird auf der READ Seite verwendet um die zu synchronisierte Datenmenge einzugrenzen. Hinweis: Bei diesem .NET Script Heater muss „Ausführung bei“ auf „Start“ gestellt werden!

Der zweite .NET Script Heater aktualisiert die Datei „lastchange.txt“ währen der Datensynchronisation mit dem größten Datum das verarbeitet wurde. Dies wird für den nächsten Lauf der Datensynchronisation benötigt. Hinweis: Bei diesem .NET Script Heater muss „Ausführung bei“ auf „Pro Zeile/Satz“ gestellt werden!

Das Beispiel verwendet für LastChange ein Textfeld, dies wurde verwendet da Sie oben geschrieben haben das Format wäre 20140202. Bitte prüfen Sie das, evtl. muss das noch auf den Datentyp DATETIME umgestellt werden.

Da das Feld lt. Ihren Angaben keine Uhrzeit Informationen enthält wird in dem Beispiel immer das komplette letzte Datum mit selektiert, es wird immer der komplette letzte Tag Synchronisiert!



Dateianhang:

Dateiname: datensynch...rung.zip
Dateigröße:14 KB

gruß
Robert Stark

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Andreas Schauerte
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
10 Jahre 10 Monate her #1630 von Andreas Schauerte
Andreas Schauerte antwortete auf Datensynchronisierung beschleunigen - Beitrag(1630)
Vielen, vielen Dank! Das Skript ist wirklich Gold wert!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.301 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.