Einzelnen Beitrag anzeigen

mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#1

Effiziente sql-abfrage oder knick in der logik?

  Alt 28. Dez 2005, 16:10
Datenbank: ib6 • Version: 6 • Zugriff über: sql
Hallo liebe Gemeinde,
ich habe mit jetzt vorgenommen, eine sql-abfrage zu optimieren.
hier ist sie:
SQL-Code:
SELECT * FROM ANGEBOTE WHERE VON <= 'NOW'  AND BIS >= 'NOW'
AND ANG_EXCLUDE NOT LIKE '%;;%'
AND ANG_EXCLUDE_GRUPPEN NOT LIKE '%;1;%'
AND( (ANG_PRODUKTE LIKE '%;;%AND ANG_KUNDEN LIKE '%;;%')
  OR (ANG_PRODUKTE LIKE '%;*;%AND ANG_KUNDEN LIKE '%;*;%')
  OR (ANG_PRODUKTE LIKE '%;;%AND ANG_KUNDEN LIKE '%;*;%')
  OR (ANG_PRODUKTE LIKE '%;*;%AND ANG_KUNDEN LIKE '%;;%') )
ich sage auch kurz was dazu: die felder ANG_KUNDEN, ANG_PRODUKTE ANG_EXLCLUDE, ANG_EXCLUDE_GRUPPEN sind eine Art Array als string realisiert. (mir fiel kein besserer weg ein eine R^3 matrix zu realisieren... )
so. jetzt hab ich mich mal mit den logik-rechenregeln darangetraut und bin auf foolgendes gestoßen:
das
SQL-Code:
AND( (ANG_PRODUKTE LIKE '%;;%AND ANG_KUNDEN LIKE '%;;%')
  OR (ANG_PRODUKTE LIKE '%;*;%AND ANG_KUNDEN LIKE '%;*;%')
  OR (ANG_PRODUKTE LIKE '%;;%AND ANG_KUNDEN LIKE '%;*;%')
  OR (ANG_PRODUKTE LIKE '%;*;%AND ANG_KUNDEN LIKE '%;;%') )
schreibe ich mal.... ähh nix schreiben... habe hier ein bild angehängt, wo die rechnung drin ist. (das forum könnte *tex vertragen )
so.. wie man auch erwarten kann, liefert die "rechnung" als sql-query müll.
jetzt meine frage an euch kenner,
welche ansätze der optimierung gibt es ohne die struktur komplett über den haufen schmeissen zu müssen?

gruß
mojo
Miniaturansicht angehängter Grafiken
tex_911.gif  
Muh macht die kUh
  Mit Zitat antworten Zitat