AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi "Lost Connection during Query" oder "wie kann ich dieses View erstellen"
Thema durchsuchen
Ansicht
Themen-Optionen

"Lost Connection during Query" oder "wie kann ich dieses View erstellen"

Ein Thema von Captnemo · begonnen am 13. Apr 2016 · letzter Beitrag vom 14. Apr 2016
 
nahpets
(Gast)

n/a Beiträge
 
#3

AW: "Lost Connection during Query" oder "wie kann ich dieses View erstellen"

  Alt 13. Apr 2016, 20:00
Nur erstmal so ein paar hingeworfenen "Gedankensplitter"

Selects, die per Union zusammengefügt werden, werden zur Dublettenbeseitigung von der Datenbank sortiert. Das Order by kann daher eigentlich entfallen, es wäre zumindest schon mal eine "Optimierungsmöglichkeit".

Wie oft werden die Felgengrößen verändert, ergänzt ...?

Eher sporadisch?

Dann erstelle Dir eine Tabelle in der Form:
Code:
create tbl_Felgengroessen as
    select s_vl_felgengroesse as Feld from Reifenlager t1 union
      select s_vr_felgengroesse as Feld from Reifenlager t1 union
      select s_hr_felgengroesse as Feld from Reifenlager t1 union
      select s_hl_felgengroesse as Feld from Reifenlager t1) t21
(Eventuell ist bei Deiner Datenbank die Syntax etwas anders, bitte ausprobieren)

Die Tabelle bindest Du dann überall dort ein, wo Du bisher Deine Union-Abfrage nutzt. Das dürfte den Aufwand, den die Datenbank betreiben muss, etwas reduzieren.

Du musst halt sicherstellen, dass diese Tabelle immer dann neu erstellt wird, wenn es bei den Felgengrößen eine Änderung gab.

Ob zur Laufzeit nun Dein Select ausgeführt wird oder die (momentan) nicht erstellbare View, dürfte egal sein. Bei einer Abfrage auf die View muss die Datenbank ja das dahinterliegende Select ausführen.

Eventuell lässt sich die View so erstellen:
Code:
create view v_Reifengroessen as
select s_vl_felgengroesse as Feld from Reifenlager
union
select s_vr_felgengroesse as Feld from Reifenlager
union
select s_hr_felgengroesse as Feld from Reifenlager
union
select s_hl_felgengroesse as Feld from Reifenlager
Spitz formuliert ist die View ja nur eine "Schreibvereinfachung" für ein mehr oder weniger komplexes SQL-Statement.

Die Idee von EarlyBird mit zwei View ist ganz nett, aber ein
Code:
Select Feld from test1 order by feld
unterscheiden sich wohl weder im Aufwand noch im Ergebnis von
Code:
Select Feld from test2 order by feld
Oder: Die zweite View ist meiner Meinung nach entbehrlich.

Auch wenn die Datenmenge von 850 Sätzen jetzt nicht wirklich nach sehr viel aussieht, so dürfte die Häufigkeit der Abfragen die Datenbank doch schon etwas ans Schwitzen bringen.

In welcher Form benötigst Du die Ergebnisse dieser Abfragen im Programm?

Als Nachschlagtabellen, Inhalte von Listboxen ...?

Eventuell reicht es ja aus, wenn Du die Abfragen nur beim Programmstart lädst und dann innerhalb des Programmes in Listen bereithälst.
  Mit Zitat antworten Zitat
 


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 04:10 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-2025 by Thomas Breitkreuz