![]() |
Datenbank: MS SQL • Version: 2008 • Zugriff über: ADO
"OR" im SelectStatement
Hallo zusammen.
Ich habe einen Select mit Join und dort mehrer "OR" Abfragen. Meine Frage ist, ob die Performance (Geschwindigkeit) der Abfrage an dem "OR" leidet. Meine gehört zu haben mit "AND" ist es kein Problem, aber "OR" verlangsamt das Ganze sehr, weil dadurch eben mehrere Vergleiche ausgeführt werden müssen. Liege ich richtig und wenn was gibt es für Möglichkeit das zu umgehen? |
AW: "OR" im SelectStatement
Kein
Delphi-Quellcode:
verwenden?
OR
Wenn ich mit dem Auto von Hamburg nach München fahre, dann belastet das die Umwelt. Mit dem Fahrrad wird die Umwelt nicht belastet. Wenn ich heute noch in München ankommen will, dann ist das Fahrrad aber so was von raus ;) |
AW: "OR" im SelectStatement
In der Joinbedingung oder im where?
Alternative Bedingungen oder alternative Werte? Im 2. Fall könnte man es mit IN versuchen. |
AW: "OR" im SelectStatement
Bei einer eingeschränkten Menge von werten könnte man ja auch
Code:
Verwenden.
...
and not(Bedingung1) and not(Bedingung2) and not(Bedingung3) ... Das
Code:
hat manchmal Performanceprobleme (meine Erfahrung), ist aber eigentlich vorzuziehen.
in(...)
Gruß K-H |
AW: "OR" im SelectStatement
Was machen denn die "or"?
Bilden sie maßgeblich die Ergebnismenge z.B: 80% aus 10Mio records? Oder gibt es separate Kriterien, die für eine starke Einschränkung sorgen? Der erste Fall wäre unangenehm, der 2. kann vernachlässigt werden. Gibt es harte Kriterien, die über indizierte Spalten eine Menge von z.B. 1000 records liefert, spielen danach ein paar "or" keine Rolle. Manchmal muss man der DB für solch ein Vorgehen etwas Hilfestellung geben. |
AW: "OR" im SelectStatement
Ein 'OR' kann auch ein Indiz für optimierungsbedürftiges Design sein.
Zitat:
|
AW: "OR" im SelectStatement
Code:
das halte ich für ein typisches 'OR' wie sollte da das Design geändert werden?
where name='Schmitz'
and (wohnort='Köln' or wohnort='Düsseldorf') Gruß K-H |
AW: "OR" im SelectStatement
Das sollte kein Problem sein, sofern Name und Wohnort mit einem Index versehen sind.
|
AW: "OR" im SelectStatement
Zitat:
Zitat:
|
AW: "OR" im SelectStatement
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 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