Leistungsverlust durch select
Moin, ich habe zwei Tabellen einmal "Projekt" und einmal "Projekt_Material". Das Material wird den Projekten zugeordnet, da dies teilweise relativ viele Datensätze sind habe ich Filteroptionen eingeführt. Leider dauert es teilweise mehrere Sekunden nachdem man einen Filter geändert hat.
let t := this;
let a := number(Material_Status);
let s := lower(Suchfeld);
switch a do
case 0:
if s != null then
select Projekt_Material where Projekte = t and contains(lower('Mitarbeiter - Beschreibung' + Beschreibung + Oberbegriff), s)
else
select Projekt_Material where Projekte = t
end
case 1:
if s != null then
select Projekt_Material where Projekte = t and Geliefert != true and kommisioniert != true and contains(lower('Mitarbeiter - Beschreibung' + Beschreibung + Oberbegriff), s)
else
select Projekt_Material where Projekte = t and Geliefert != true and kommisioniert != true
end
case 2:
if s != null then
select Projekt_Material where Projekte = t and (Geliefert = true or kommisioniert != true) and contains(lower('Mitarbeiter - Beschreibung' + Beschreibung + Oberbegriff), s)
else
select Projekt_Material where Projekte = t and (Geliefert = true or kommisioniert = true)
end
end
Das dabei der Code und wollte Fragen welche Möglichkeiten ich habe, dass das System etwas entlastet wird?
2 Antworten
-
Hi Lorenz,
Du bis doch schon in Projekte und suchst zugeordnete Datensätze aus Projekt_Material - dann genügt das so (wenn die Verknüpfung zu Projekt_Material auch so heißt):
let a := number(Material_Status);
let s := lower(Suchfeld);
switch a do
case 0:
if s != null then
Projekt_Material [Projekte = t and contains(lower('Mitarbeiter - Beschreibung' + Beschreibung + Oberbegriff), s)]
else
Projekt_Material
end
case 1:
if s != null then
Projekt_Material [Projekte = t and Geliefert != true and kommisioniert != true and contains(lower('Mitarbeiter - Beschreibung' + Beschreibung + Oberbegriff), s)]
else
Projekt_Material [Projekte = t and Geliefert != true and kommisioniert != true]
end
case 2:
if s != null then
Projekt_Material [Projekte = t and (Geliefert = true or kommisioniert != true) and contains(lower('Mitarbeiter - Beschreibung' + Beschreibung + Oberbegriff), s)]
else
Projekt_Material [Projekte = t and (Geliefert = true or kommisioniert = true)]
end
end
lg, Torsten
-
Vielen Dank, es hat die Wartezeit gefühlt halbiert. Habe mich schon länger gefragt, wofür die [] Klammern da sind.
Content aside
- vor 3 JahrenZuletzt aktiv
- 2Antworten
- 282Ansichten