Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   update zulangsam (https://www.delphipraxis.net/155699-update-zulangsam.html)

khh 4. Nov 2010 12:01

Datenbank: firebird • Version: 2.1 • Zugriff über: zeos

update zulangsam
 
hallo zusammen,
ich habe folgendes SQLstatement:
Code:
update artikelpreise p1
set p1.bruttopreis =
(SELECT bruttoneu as bruttopreis FROM artikelpreiseaenderung p2
WHERE p1.artikelpreis_id = p2.artikelpreis_id ),
p1.nettopreis = (SELECT (bruttoneu / (100  + p2.mwstsatz ) *100 ) as nettopreis FROM artikelpreiseaenderung p2
WHERE p1.artikelpreis_id = p2.artikelpreis_id ),
aenderer = 'preispflege',
aenderdat = '04.11.10';
damit werden die Preise aus der Änderungstabelle in die Stammdatentabelle übernommen und dabei der Nettopreis berechnet.

Leider dauert dieses Statement bei nur 1000 DS bereits fast eine Minute.
Ein Prog das die DS der Änderungstabelle in einer Schleife durchgeht und die Artikelpriese einzeln ändert, dauert sogar 90sek.

Das obige in Firebird abesetzt braucht fast genau so lang.
Das sollte doch scheller gehen.
Was kann ich anders machen?

Gruss KHH

Bummi 4. Nov 2010 12:09

AW: update zulangsam
 
SQL-Code:
update artikelpreise p1
set p1.bruttopreis =p2.bruttopreis
,p1.nettopreis = p2.bruttoneu / (100  + p2.mwstsatz ) *100 
,aenderer = 'preispflege'
,aenderdat = '04.11.10'
FROM artikelpreiseaenderung p2
WHERE p1.artikelpreis_id = p2.artikelpreis_id ;
Indizes auf den ID's der Tabellen hast Du ja? ;-)

khh 4. Nov 2010 12:30

AW: update zulangsam
 
Zitat:

Zitat von Bummi (Beitrag 1059594)
Code:
update artikelpreise p1
set p1.bruttopreis =p2.bruttopreis
,p1.nettopreis = p2.bruttoneu / (100  + p2.mwstsatz ) *100 
,aenderer = 'preispflege'
,aenderdat = '04.11.10'
FROM artikelpreiseaenderung p2
WHERE p1.artikelpreis_id = p2.artikelpreis_id ;
Indizes auf den ID's der Tabellen hast Du ja? ;-)

klaro ,-), dachte ich :-(

danke dir ,
auf der artikelpreis_id der Änderungstabelle hat der Index gefehlt ;-)

weiss der Teufel warum :-)

tsteinmaurer 4. Nov 2010 20:09

AW: update zulangsam
 
Sofern es sich um eine referentielle Beziehung handelt, dann sollte ein FK Constraint drauf sein und somit automatisch auch ein Index. Vielleicht wurde der FK Constraint vergessen?

lg,
Thomas


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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