Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL schnell UPDATEN! (https://www.delphipraxis.net/150795-mysql-schnell-updaten.html)

DeddyH 28. Apr 2010 13:29

Re: MySQL schnell UPDATEN!
 
Dann schau doch einmal in die Dokumentation zu MySQL bzgl. Stored Procedures. Es ist ja kein Wunder, dass das bisher lange dauert.

Ruewue 28. Apr 2010 14:01

Re: MySQL schnell UPDATEN!
 
Danke noch mals.

Es scheint, als habe ich mich etwas falsch ausgedrückt. Ich kann in der ersten Tabelle keine WHERE Klausels setzen, da ich jeden einezelnen dieser 2.2 Mio Sätze neu definieren muss.

Ich hole mir aus der Tabelle1 den EAN einse Artikels um damit in Tabelle2 ein bestimmtest Datum zu suchen. dann vergleiche ich diese Datum mit dem aus Tabelle1. Ist es größe gibt es den Wert 'PO' ist es kleiner den Wert 'RO' gibt es diesen EAN nicht in Tabelle2 dann auch den Wert 'RO'.
Dann muss ich genau in diesen Datensatz diese Werte neu setzen, also 'RO' oder 'PO' und das Datum aus Tabelle2 sowie eine weiteren Wert aus Tabele2.

Ich habe Tabelle1 und Tabelle2 auch schon mit einen LEFT OUTER JOIN verbunden doch muss ich den UPDATE trotzdem ausführen.

Ich bin auch dabei dies im SP zu machen.

Noch zur Anmerkung! Ich muß das Datum aus Tabelle2 noch umwandeln in eine anderes Format, da beide nicht im gleichen Format vorliegen. Sonst klappt der Vergleich nicht


Danke!

mkinzler 28. Apr 2010 14:13

Re: MySQL schnell UPDATEN!
 
Ich würde es mit 2 getrennten Update Statements versuchen

HeikoAdams 28. Apr 2010 20:53

Re: MySQL schnell UPDATEN!
 
Zitat:

Zitat von Ruewue
Ich hole mir aus der Tabelle1 den EAN einse Artikels um damit in Tabelle2 ein bestimmtest Datum zu suchen.

Ich bin mir zwar nicht sicher, ob es sich positiv auf die Performance auswirkt, aber Du kannst die beiden ersten SQLs auch zu einem kombinieren indem Du folgendes schreibst:
SQL-Code:
SELECT Feld1_2, Feld2_2 FROM Tabelle2 WHERE Feld3_2 IN (SELECT Feld1_1 FROM Tabelle1)

Ruewue 29. Apr 2010 12:15

Re: MySQL schnell UPDATEN!
 
@HeikoAdams:Danke! Ich habe es schon mit einem JION gemacht (Dauert ca. 98 sec.). Aber die Bremse ist halt der UPDATE auf jeden einzelnen Datensatz.


Danke

RueWue

himitsu 29. Apr 2010 12:21

Re: MySQL schnell UPDATEN!
 
Zitat:

Zitat von Ruewue
(Dauert ca. 98 sec.)

Das sind bei 2.200.000 Einträgen doch "nur" 45 Microsekunden (0,000045 Sekungen) pro Eintrag und das findest du jetzt soooooooo langsam?

HeikoAdams 29. Apr 2010 13:15

Re: MySQL schnell UPDATEN!
 
Zitat:

Zitat von Ruewue
@HeikoAdams:Danke! Ich habe es schon mit einem JION gemacht (Dauert ca. 98 sec.). Aber die Bremse ist halt der UPDATE auf jeden einzelnen Datensatz.

Okay, dann nochmal meine Frage:
Ist die Where-Klausel
SQL-Code:
WHERE Feld1_1=Fled1_1 AND Feld2_1=Feld2_1 AND Feld3_1=Feld3_1 AND Feld4_1=Feld4_1
im Update Dein Ernst? So wie ich das sehe, kannst Du die auch genau so gut weg lassen, was eventuell sogar noch ein wenig Zeit spart.

Schorschi5566 4. Mai 2010 12:18

Re: MySQL schnell UPDATEN!
 
Warum sollte man das Ganze nicht in einem einzigen Update erledigen können?

Verstehe ich nicht so ganz. :stupid:


Oder vielleicht zwei Updates.

Mit dem ersten setzt Du Feld_6_1 auf 'RO' für die Bedingung Feld1_2 <= Feld5_1 und mit dem zweiten setzt Du Feld_6_1 auf 'PO' wenn Feld1_2 > Feld5_1 zutrifft. Warum musst Du dazu alle Datensätze auf den Client holen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:37 Uhr.
Seite 3 von 3     123   

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-2025 by Thomas Breitkreuz