AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 14:17

Parameter dieser Suchanfrage:

Suche in Thema: in-Klausel in großen Tabellen
Suche alle Beiträge, die von "Delphi.Narium" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 10 von insges. 10 Treffern
Suche benötigte 0.002s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 11. Feb 2019
    Das ist nur dann nicht performant, wenn man für die Abfrage zuerst die beiden Felder zusammenfasst und diese Zusammenfassung für die Wherebedingung nutzt. Da man die Wherebedingung aber über die beiden Felder separat machen kann, sollte das durchaus schnell mit einer Exists-Prüfung im SQL zu realisieren sein. Klar, der Index muss auf diese Abfrage optimiert sein, dass sollte aber mit 'ner...
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 11. Feb 2019
    Die Auftragsnummer wird über concat(waaunr,'-', waaupo) gebildet. Sie ist ein Konstrukt mehrerer Werte, die zusammen zu einem gewünschten Jahr existieren müssen. Ist diese Existenz gegeben, müssen alle Sätze, die über dieses Konstrukt verfügen, von der Datenbank herausgesucht werden.
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 11. Feb 2019
    Warum sollte das so sein?

    Dort ist eine recht gute Erklärung zu finden: https://stackoverflow.com/questions/7082449/exists-vs-join-and-use-of-exists-clause



    Beide Varianten prüfen, ob es zu der Bedingung ein "Gegenstück" gibt. Während Exists nur sagt: "Ja gibt es" bzw. "Nein, gibt es nicht", liefert Join das Gegenstück. Bei großen Datenmengen kann das schon einen großen Unterschied...
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 8. Feb 2019
    Wenn ich mich recht erinnere aber nur, wenn man sie im SQL auflistet, nicht jedoch als Ergebnismenge einer Abfrage.

    select * from tabelle where Spalte in ('1','2', ... ,'2000') mit hier aufgeführen 2000 Werten müsste funktionieren, nicht jedoch select * from tabelle where Spalte in ('1','2', ... ,'2001') mit hier aufgeführten mehr als 2000 Werten. select * from tabelle where Spalte in (select...
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 8. Feb 2019
    select concat(waaunr,'-', waaupo) as auftrag,
    watenr,
    oaagnr,
    oamanr,
    oarmda,
    oatlkz,
    oarmmg,
    sum(oarmmg * wagewi / 1000) as wagewi
    from as400archiev a
    where exists (
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 8. Feb 2019
    Was stimmt den jetzt bei den Vorschlägen nicht: Die Geschwindigkeit oder das Ergebnis?

    Alle AuftragsNr aus 2018 werden gesucht:
    select distinct AuftragsNr from tabelle where Fertigdatum between 20180000 and 20181231
    und nun aus der Tabelle alle die, deren AuftragsNr im obigen Ergebnis enthalten ist:

    select * from tabelle where AuftragsNr in (
    select distinct AuftragsNr from tabelle...
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 8. Feb 2019
    Oder doch eher dashier?select a.*
    from Auftragsdaten A
    join Auftragsdaten A2018
    on A.AuftragsNr = A2018.AuftragsNr
    where A2018.Fertigdatum between :anfang and :ende
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 8. Feb 2019
    Es sollen aber alle Sätze zu den AuftragsNr angezeigt werden, zu denen "auch" einen Satz aus dem Jahr 2018 existiert und nicht "nur" die Sätze aus dem Jahr 2018. Man kommt also an einem IN oder einem adäquaten Join-Konstrukt nicht vorbei.

    select * from tabelle where Fertigdatum >= '2018-01-01' and Fertigdatum <= '2018-12-31' hat den Nachteil, dass hier (vermutlich) Fertigdatum zu einer...
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 8. Feb 2019
    Also eher sowas?

    select * from tabelle a where exists (
    select 1 from tabelle b
    where a.AuftragsNr = b.AuftragsNr
    and b.Fertigdatum between CAST('2018-01-01' AS DATE) and CAST('2018-12-31' AS DATE)
    )
  • Forum: Datenbanken

    AW: in-Klausel in großen Tabellen

     
      by Delphi.Narium, 8. Feb 2019
    eventuell sowas?

    select * from tabelle a where exists (select 1 from tabelle b where Year(b.Fertigdatum) = 2018 and a.AuftragsNr = b.AuftragsNr)


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=Delphi.Narium&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=199645
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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