AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

update zulangsam

Ein Thema von khh · begonnen am 4. Nov 2010 · letzter Beitrag vom 4. Nov 2010
Antwort Antwort
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.926 Beiträge
 
FreePascal / Lazarus
 
#1

update zulangsam

  Alt 4. Nov 2010, 12:01
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
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
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: update zulangsam

  Alt 4. Nov 2010, 12:09
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?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von mkinzler ( 4. Nov 2010 um 17:54 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.926 Beiträge
 
FreePascal / Lazarus
 
#3

AW: update zulangsam

  Alt 4. Nov 2010, 12:30
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
Karl-Heinz

Geändert von khh ( 4. Nov 2010 um 12:41 Uhr)
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#4

AW: update zulangsam

  Alt 4. Nov 2010, 20:09
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz