![]() |
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
update zulangsam
hallo zusammen,
ich habe folgendes SQLstatement:
Code:
damit werden die Preise aus der Änderungstabelle in die Stammdatentabelle übernommen und dabei der Nettopreis berechnet.
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'; 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 |
AW: update zulangsam
SQL-Code:
Indizes auf den ID's der Tabellen hast Du ja? ;-)
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 ; |
AW: update zulangsam
Zitat:
danke dir , auf der artikelpreis_id der Änderungstabelle hat der Index gefehlt ;-) weiss der Teufel warum :-) |
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