AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sinn und Zweck von Any??
Thema durchsuchen
Ansicht
Themen-Optionen

Sinn und Zweck von Any??

Offene Frage von "JumpFrog"
Ein Thema von JumpFrog · begonnen am 24. Mär 2009 · letzter Beitrag vom 24. Mär 2009
 
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#10

Re: Sinn und Zweck von Any??

  Alt 24. Mär 2009, 16:07
Zitat von JumpFrog:
Da kommt wieder die Frage wieso gerade den kleinsten Wert? Ich begründe das jetzt einfach mit dem >
Jupp. Naja, fast.

Du kannst bei ANY ja jeden Operator nehmen.

= ANY (Unterabfrage) heisst ja, dass der Wert mit irgend einem in der Unterabfrage (egal welcher) identisch übereinstimmen muss. Das ist natürlich für jeden unterschiedlichen Wert X in der Hauptabfrage ein anderer Wert in der Unterabfrage, sofern dieser überhaupt existiert.

ANY > heisst eben, dass der Wert größer als irgend einer in der Unterabfrage ist.
Und wie prüfst Du am einfachsten, ob viele Werte X (Hauptabfrage) größer als irgend ein Eintrag in einer anderen Liste sind? Du gehst her, und suchst Dir den kleinsten Wert aus der Liste, weil wenn Du da drüber bist, bist Du auf jeden Fall > ANY.

Die Datenbank wird, sofern vorhanden, aller Wahrscheinlichkeit nach einen Index zur Suche und zum Vergleich verwenden. Je nach Größe des Index kann es also schon sehr gut sein, das für den eigentlichen Vergleich ein größerer Wert hergenommen wird. Aber für > ANY gibts halt eine untere Schranke, und die wird zwangsläufig durch den kleinsten Wert bestimmt. Bei < ANY wäre es eben der größte, bei != ANY reicht ja auch irgend ein Wert in der Unterabfrage, der anders als der Vergleichswert ist.

Es kommt eben schon auf den Operator an, welcher Wert ausschlaggebend ist.
Nur ein Vergleich auf einen einzelnen Wert (SELECT TOP1 value FROM ORDER BY value ASC) ist sicher schneller als der Vergleich gegen eine Menge von Werten (ANY).
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
 


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 18:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz