Announcement

Collapse
No announcement yet.

Update Table optimieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Update Table optimieren

    Hallo Leute,
    ich muß mehrere Auswertungen bei meien Interbase Server mittels Delphi machen. Für die Auswertungen reichen eigentlich immer die Daten vom letzten Tag. Dieses möchte ich dann Online vorstellen. Die Auswertung dauert so ca 1 Minute. von diesesn wird es dann ca 12 - 15 Stück geben. Um es zu beschleunigen wollte ich die Auswertung nachts machen lassen und dann am Mongen das Ergebnis Darstellen. Die einzelenen Ergebnisse wollte ich einfach mittels Update Tabel in eine Bestehende Tabelle schreiben. Dazu benutze ich diese Funktion :<P>

    update Fach Fach_org<P>
    Set FachFrei = (<P>

    Select SUM(BestandFach-BelegtFach)<P>
    From Bestellung Best<P>
    Left Outer Join Fach Fach_alt on BEST.IDFach = Fach_ALT.FachZaehler<P>
    where Fach_Org.FachZaehler = Fach_ALT.FachZaehler<P>
    and BestandFach-BelegtFach > 0<P>

    Group by Fach_ALT.FachZaehler)<P>
    <P>
    Dieses ist für eine Auswerung. Vor diesem Typ wird es dann noch 5 weitere geben und das selbe jewals noch einmal mit 3 Weiteren (also 3 x 5).<P>

    Das Problem ist jetzt nur, daß dieser SQL so ca 3 - 4 Minuten benötigt. Gibt es eine Möglichkeit den SQL Befehl zu beschleunigen ?<P> <P>

    Cu Tanja <P>

  • #2
    Hallo Tanja,<BR><BR>
    ich habe auch das Performace - Problem beim Update mit Selects bzw. SubSelects.<BR>
    Aus diesem Grunde erstelle ich für diese Selects dann immer Prozeduren.<BR>
    Der Unterschied ist gewaltig.<BR><BR>
    Fran

    Comment


    • #3
      Mahlzeit,

      ich kann zwar nicht ganz nachvollziehen was du das tust aber für mich sieht es so aus als ob der Left join und der Group by überflüssig sind.

      update Fach F
      Set FachFrei = (
      Select SUM(B.BestandFach-B.BelegtFach)
      From Bestellung B
      where B.IDFach = F.FachZaehler
      and B.BestandFach - B.BelegtFach > 0)

      Grüße
      Ral

      Comment

      Working...
      X