AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi "OR" im SelectStatement
Thema durchsuchen
Ansicht
Themen-Optionen

"OR" im SelectStatement

Ein Thema von vit4l · begonnen am 14. Feb 2013 · letzter Beitrag vom 15. Feb 2013
Antwort Antwort
Seite 1 von 2  1 2      
vit4l

Registriert seit: 10. Jun 2008
72 Beiträge
 
#1

"OR" im SelectStatement

  Alt 14. Feb 2013, 11:56
Datenbank: MS SQL • Version: 2008 • Zugriff über: ADO
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?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 12:11
Kein OR verwenden?

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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 12:17
In der Joinbedingung oder im where?
Alternative Bedingungen oder alternative Werte? Im 2. Fall könnte man es mit IN versuchen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 12:26
Bei einer eingeschränkten Menge von werten könnte man ja auch
Code:
...
and not(Bedingung1)
and not(Bedingung2)
and not(Bedingung3)
...
Verwenden.

Das
Code:
in(...)
hat manchmal Performanceprobleme (meine Erfahrung), ist aber eigentlich vorzuziehen.

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
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 13:01
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 16:25
Ein 'OR' kann auch ein Indiz für optimierungsbedürftiges Design sein.

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
Mir fehlt der Bezug zum 'OR'.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 16:59
Code:
where name='Schmitz'
  and (wohnort='Köln' or wohnort='Düsseldorf')
das halte ich für ein typisches 'OR' wie sollte da das Design geändert werden?

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

n/a Beiträge
 
#8

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 17:55
Das sollte kein Problem sein, sofern Name und Wohnort mit einem Index versehen sind.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 19:55
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.
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
Mir fehlt der Bezug zum 'OR'.
Da ist der Bezug
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: "OR" im SelectStatement

  Alt 14. Feb 2013, 19:59
Ein 'OR' kann auch ein Indiz für optimierungsbedürftiges Design sein.
AND genauso
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:10 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