Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

Ruewue 27. Apr 2010 15:28

Re: MySQL schnell UPDATEN!
 
Hallo DeddyH, das stimmt so. Ich hole alle 2.2 Mio Daten runter auf den Client. Gehe dann jeden Satz einzeln durch. Ich suche erst einen Bestimmten Wert in Tabelle 1. Ist dieser forhanden, wird in Tabelle 2 weiter gesucht und dann ein neuer Wert berechnet(gebildet) und mit 2 weiteren Werten in Tabelle 1 upgedatet. An SP habe ich auch shcon gedacht, doch ich muß halt einen Wert vergleichen und neu ermitteln. Dies geschieht im Programm in 2 Functionen.

Ich bräuchte also mindestens 2 SP. Eine für den Download und eine fürs Update.

mkinzler 27. Apr 2010 15:45

Re: MySQL schnell UPDATEN!
 
Wie wäre es damit, die daten Serverseitig auszuwerten und nur die benötigten an den Client zu senden ( so macht man es normalerweise)

HeikoAdams 27. Apr 2010 16:11

Re: MySQL schnell UPDATEN!
 
Zitat:

Zitat von Ruewue
Hallo DeddyH, das stimmt so. Ich hole alle 2.2 Mio Daten runter auf den Client. Gehe dann jeden Satz einzeln durch. Ich suche erst einen Bestimmten Wert in Tabelle 1.

Das klingt so, als ob Du ein
SQL-Code:
SELECT * FROM <Tabelle>
machst und kein
SQL-Code:
SELECT * FROM <Tabelle> WHERE <Feld> = <gesuchter Wert>
Mit letzterem kannst Du Dir (und der CPU) wahrscheinlich eine Menge Arbeit sparen :wink:

DeddyH 27. Apr 2010 16:26

Re: MySQL schnell UPDATEN!
 
Zitat:

Zitat von Ruewue
Ich bräuchte also mindestens 2 SP. Eine für den Download und eine fürs Update.

Du brauchst doch keine SP für den Download (ich wüsste auch gar nicht, wie das gehen soll). Die SP arbeitet die Daten ja serverseitig ab, so dass Du sie am Client überhaupt nicht brauchst.

mkinzler 27. Apr 2010 16:46

Re: MySQL schnell UPDATEN!
 
Sonst würde ich noch zu einen Cross-Join-Raten um die Datenmenge noch etwas zu erhöhen :stupid:

Ruewue 28. Apr 2010 12:56

Re: MySQL schnell UPDATEN!
 
Hallo und danke erst Mal.
komme nun erst wieder dazu.

Also ich brauche alle 2.2 Mio. Daten. Es handelt sich um die Neuzuordnung aller je gelaufenen Kollektionen in zwei neue Kategorien. Der Ablöauf sieht wie folgt aus:

SELECT Feld1_1, Feld2_1, Feld3_1, Feld4_1, Feld5_1 FROM Tabelle1

SELECT Feld1_2, Feld2_2 FROM Tabelle2 WHERE Feld3_2=Feld1_1

IF RECORDCOUNT=0 THEN
Vari1='RO'
ELSE
IF Feld1_2 > Feld5_1 THEN
Vari1='PO'
ELSE
Vari1='RO'

UPDATE Tabelle1 SET Feld6_1=Vari1, Feld7_1=Feld1_2, Feld8_1=Feld2_2 WHERE Feld1_1=Fled1_1 AND Feld2_1=Feld2_1 AND Feld3_1=Feld3_1 AND Feld4_1=Feld4_1


Der UPDATE dauert auf Grund der Datenmenge extrem lange.

Danke schon mal Im Voraus
RueWue

DeddyH 28. Apr 2010 13:06

Re: MySQL schnell UPDATEN!
 
Nochmal: holst Du immer noch alle Daten zum Client, wertest sie dort aus und schickst die Änderungen zurück zum Server?

mkinzler 28. Apr 2010 13:09

Re: MySQL schnell UPDATEN!
 
Der SQL Update Befehl kennt auch ein where :zwinker:

HeikoAdams 28. Apr 2010 13:21

Re: MySQL schnell UPDATEN!
 
Ohne Dir jetzt zu nahe treten zu wollen, aber Du solltest Dir dringend mal die Dokumentation vom MySQL bzw. SQL ansehen. Solche SQL-Statements würde ich höchstens einem Azubi während der ersten 6 Monate seiner Ausbildung durchgehen lassen.

1. Was spricht dagegen, anstatt
SQL-Code:
SELECT Feld1_1, Feld2_1, Feld3_1, Feld4_1, Feld5_1 FROM Tabelle1
SQL-Code:
SELECT Feld1_1, Feld2_1, Feld3_1, Feld4_1, Feld5_1 FROM Tabelle1 WHERE Feldx_y = Gesuchter_Wert
zu schreiben?

Beim zweiten SQL-Statement
SQL-Code:
SELECT Feld1_2, Feld2_2 FROM Tabelle2 WHERE Feld3_2=Feld1_1
verwendest Du ja auch eine Where-Klausel, also ist Dir die Existenz dieser Funktionalität ja schon einmal bekannt. Also warum nutzt Du sie nur so sparsam?

2. Sorry, aber Where-Klauseln wie
SQL-Code:
WHERE Feld1_1=Fled1_1 AND Feld2_1=Feld2_1 AND Feld3_1=Feld3_1 AND Feld4_1=Feld4_1
kann man sich auch komplett weglassen. Das ist das selbe, als ob Du
SQL-Code:
WHERE 1=1 AND 2=2 AND 3=3 AND 4=4
schreibst.

Ruewue 28. Apr 2010 13:24

Re: MySQL schnell UPDATEN!
 
@DeddyH: Ja ich hole immer noch alle 2.2 Mios runter auf den Client.

@mkinzler: Ich habe in meinem UPDATE ein WHERE


Gruß
Ruewue


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr.
Seite 2 von 3     12 3      

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