AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Ergebnismenge beschränken mit "LIMIT" oder "TOP"

Ergebnismenge beschränken mit "LIMIT" oder "TOP"

Ein Thema von Der schöne Günther · begonnen am 19. Feb 2018 · letzter Beitrag vom 22. Feb 2018
Antwort Antwort
Seite 4 von 4   « Erste     234
jobo

Registriert seit: 29. Nov 2010
2.963 Beiträge
 
Delphi 2010 Enterprise
 
#31

AW: Ergebnismenge beschränken mit "LIMIT" oder "TOP"

  Alt 22. Feb 2018, 12:01
Wieso war ich der Meinung, dass es um SQLite geht?
Keine Ahnung.

Letztlich scheint sich ja alles in Wohlgefallen aufzulösen, auch wenn ich da zwischendrin Widersprüche sehe.
Zitat von Der schöne Günther:
[*]Ich habe kein Performance-Problem.
Zitat von Der schöne Günther:
Ein
Code:
SELECT COUNT(*) where Bedingung
kann ich mir nicht leisten, die Bedingung ist komplex. Das dauert so lange dass man sich erst einmal einen Kaffee holen kann. ..
"Datengräber" sind ja dann vielleicht auch wie der Name andeutet nicht unbedingt etwas für adhoc Zugriff. Bewegung im Grab ist langsam. Will man trotzdem "at your fingertips" haben, geht es Richtung Datawarehouse, Starschema usw., die Daten werden nicht nur begraben, sondern man notiert sich einmalig wann, wieviel, wovon, wo und bietet das zum Browsen an.

Jenseits von SQLite gibt es natürlich in echten RDBMS und ohne gleich ein Datawarehouse zu eröffnen auch Technologien, die eine bessere Skalierung der Zugriffszeiten ermöglichen, "Partitionierung" mal als ein Stichwort.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.658 Beiträge
 
Delphi 7 Personal
 
#32

AW: Ergebnismenge beschränken mit "LIMIT" oder "TOP"

  Alt 22. Feb 2018, 14:15
Ich habe mit der Abfrage ein leichtes Problem
SQL-Code:
select
   tabelle1.pkey,
   [zeitstempel],
   [kurzerText],
   [kommazahl],
   [ganzzahl]
FROM
   tabelle1 JOIN tabelle2
ON
   (tabelle1.pkey = tabelle2.tabelle1_pkey)
WHERE
   (
      ((tabelle1.zeitstempel >= :timeMin) OR (CAST(:timeMin as SQL_TIMESTAMP) is NULL))
   AND
      ((tabelle1.zeitstempel <= :timeMax) OR (CAST(:timeMax as SQL_TIMESTAMP) is NULL))
   AND
      ((tabelle1.kurzerText = :textParameter) or ( CAST(:textParameter as SQL_VARCHAR) is NULL ))
   )
ORDER BY [zeitstempel] DESC LIMIT 1000;
Das liest sich wie, wenn keine Werte (min,max,text) übergeben werden, dann liefere alles!
Wahrscheinlich gibt es in der GUI eine Logik, die das verhindert aber Unbehagen bereitet mir das trotzdem.
Ad hoc würde ich da drei Abfragen verwenden.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.963 Beiträge
 
Delphi 2010 Enterprise
 
#33

AW: Ergebnismenge beschränken mit "LIMIT" oder "TOP"

  Alt 22. Feb 2018, 14:35
Naja, halt die letzten 1000?
Gruß, Jo
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.716 Beiträge
 
Delphi 10 Seattle Enterprise
 
#34

AW: Ergebnismenge beschränken mit "LIMIT" oder "TOP"

  Alt 22. Feb 2018, 15:55
Eben: Wenn zeitlich nicht eingegrenzt, dann einfach die 1000 neusten. Dank des Index auf dem Zeitstempel-Feld ist das Ergebnis hierzu in wenigen Millisekunden da. Suche ich ohne zeitliche Einschränkung nach "kurzerText" und es gibt nur ein paar Handvoll Treffer von vor ein paar Jahren dauert es ein paar hundert Millisekunden, aber auch das finde ich völlig akzeptabel. Einen Index auf das Textfeld habe ich nicht.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 05:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf