AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Otimierung SQL Abfrage oder Logik
Thema durchsuchen
Ansicht
Themen-Optionen

Otimierung SQL Abfrage oder Logik

Ein Thema von haentschman · begonnen am 11. Dez 2015 · letzter Beitrag vom 13. Dez 2015
Antwort Antwort
Seite 2 von 2     12   
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.889 Beiträge
 
Delphi 12 Athens
 
#11

AW: Otimierung SQL Abfrage oder Logik

  Alt 13. Dez 2015, 15:24
Korrekt wäre es, den ersten Wert zu ermitteln, denn den hat Du ja definitiv nicht (er entspricht der letzten Datenänderung vor dem Zeitraum. Der letzte Wert entspricht dem letzten Wert aus dem Select.
Die Ermittelung der Werte kannst Du Dir natürlich sparen, wenn zufällig zu Beginn und Ende ein Wert vorhanden ist.
Thomas Breitkreuz
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#12

AW: Otimierung SQL Abfrage oder Logik

  Alt 13. Dez 2015, 15:38
Danke Allen...
Zitat:
Ich verstehe eher nicht, warum er die Werte nicht einfach manuell ergänzt.
Hab ich ja jetzt. Die SQL Abfragen waren wahrscheinlich Koffeinmangel geschuldet. Oder man sieht den Wald vor lauter Bäumen nicht. Die meisten Ideen kommen bei Aufschreiben des Problems...
Zitat:
Korrekt wäre es, den ersten Wert zu ermitteln, denn den hat Du ja definitiv nicht (er entspricht der letzten Datenänderung vor dem Zeitraum.
Richtig, das wäre korrekt. (letzter VOR dem gewählen Zeitraum) So hatte ich es ja. Das brachte für jede Serie ein zusätzliches SQL... den Overhead. Ich wahnsinniger hatte sogar am Ende per SQL abgefragt...
  Mit Zitat antworten Zitat
HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#13

AW: Otimierung SQL Abfrage oder Logik

  Alt 13. Dez 2015, 18:29
Zu erst mal möchte ich Bug zustimmen: Wenn nicht gemessen wird zeig auch nichts an. Der Vergleich mit dem EKG hinkt. Denn das EKG misst auch wenn es pieep macht, nur das der Wert eben 0 ist. Deine waagerechten farbigen Linien stellen aber ein Wert da, nur dass dieser gar nicht gemessen wurde, ist dann also eigentlich eine Falschaussage.

Zu den fehlenden Werten. Probier mal folgendes: Leg ein Tabelle mit den Datum aller Tage über einen Zeitraum von, sagen wir mal 10 Jahren (macht gerade mal ca. 36500 Datensätze) an:
Code:
create table T_DATUM (
  DATUM date not null,
  UNIX_START int not null,
  UNIX_END int not null,
  primary key DATUM
);
Dann die Tabelle entsprechend füllen und und baue dein SELECR um:
Code:
select
  rd.F_PARAMETER_ID,
  -- damit auch ein Timestamp zurückgegeben wird, wenn keine Daten da sind
  case when rd.F_TIMESTAMP_UNIX = null then d.UNIX_START else rd.F_TIMESTAMP_UNIX end as F_TIMESTAMP_UNIX,
  rd.F_POWER_STATE,
  rd.F_VALUE,
  mt.F_TYPE_ID
from
  T_DATUM d
  left outer join T_RECORD_DATA rd ON rd.F_TIMESTAMP_UNIX between d.UNIX_START and d.UNIX_END
  inner join T_DEVICE_PARAMETERS dp on dp.ID = rd.F_PARAMETER_ID
  inner join T_MEASURE_TYPES mt on mt.ID = dp.F_MEASURE_TYPE_ID
where
  rd.F_PARAMETER_ID = 1060 and d.DATUM between <startzeitpunkt> and <endzeitpunkt> -- jetzt aber als DATE formatiert
order by
  rd.F_TIMESTAMP_UNIX desc
Alles ungetestet (habe keine Firebord DB.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#14

AW: Otimierung SQL Abfrage oder Logik

  Alt 13. Dez 2015, 19:22
Zitat:
Der Vergleich mit dem EKG hinkt. Denn das EKG misst auch wenn es pieep macht, nur das der Wert eben 0 ist.

Zitat:
Wenn nicht gemessen wird zeig auch nichts an.
Ich werde das Ganze mal aussitzen und hören wie die Anwender, die die Grafiken beurteilen müssen, darüber denken. Die "nicht gemessenden" Werte auf die 0 Linie runter zu ziehen ist kein Problem. Ggf. Kann man das als Anzeigeeinstellung implementieren und vom User einstellen lassen...
  Mit Zitat antworten Zitat
HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#15

AW: Otimierung SQL Abfrage oder Logik

  Alt 13. Dez 2015, 19:41
Der Anwender ist König.

Trotzdem, die Werte auf 0 runterziehen wäre für mich keine Lösung. Denn die Werte sind nicht 0, das System kennt diese Werte nicht.

Wenn ich dich frage wieviel Geld hattest du gestern in deiner Brieftasche und du antwortest 0 Euro ist das etwas komplett anderes als wenn du sagst, weiß ich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#16

AW: Otimierung SQL Abfrage oder Logik

  Alt 13. Dez 2015, 20:19
Die 0 Linie ist ja die X-Achse und damit sind die Linien quasi nicht sichtbar...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:20 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