Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#1

Index geschickt setzen für Tabellenvergleich

  Alt 24. Mär 2021, 12:24
Datenbank: MariaDB • Version: 10.? • Zugriff über: JDBC
Hallo,

ich soll für eine unveränderbare Fremdsoftware, die an dieser Stelle keine Protokolierung hat, Verändeungsdaten liefern, wobei Veränderungen auch 2 Jahre Rückwirkend noch passieren können.

Mein Plan:
"Heute" eine Kopie der betreffenden Daten speichern und diese mit der Kopie der Daten von "Gestern" vergleichen, ob sich bei einem Datensatz etwas geändert hat. Das erstellen der Kopien läuft ca. 5 Minuten, womit ich leben kann, aber mein Vergleich läuft super lange, bei ca. 300 Tsd. Datensätzen.

Aufbau der "Kopie"-Tabellen:
FirmenNummer
Abteilungsnummer
PersonenNummer
Kennzeichen (varchar)
Tag (datum)
Dauer (integer)

Das SQL-Statement für den Vergleich:
SQL-Code:
Select
  Heute.FirmenNummer, Heute.Abteilungsnummer, Heute.PersonenNummer,
  Heute.Kennzeichen, Heute.Tag, Heute.Dauer
From Heute
Left Join Gestern
  On Heute.FirmenNummer=Gestern.FirmenNummer And Heute.Abteilungsnummer=Gestern.Abteilungsnummer
  And Heute.PersonenNummer=Gestern.PersonenNummer And Heute.Kennzeichen=Gestern.Kennzeichen
  And Heute.Tag=Gestern.Tag And Heute.Dauer=Gestern.Dauer
Where
  Gestern.FirmenNummer is NULL
Fragen nun:
Kann man das Beschleunigen durch Indizies? Wie? Worauf?
Oder stellt man die Abfrage anderweitig um, damit Sie schneller wird? Vielleicht irgendwas mit Exists?
Ralph
  Mit Zitat antworten Zitat