Einzelnen Beitrag anzeigen

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