Toon posts:

[SQL] slim beslissen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Stel je hebt een tabel, met daarin een aantal items. Die items moeten voor bepaalde personen afgeschermd worden. Dit kan met een ingewikkelde join op een rechten tabel, dit kan dus allemaal in een query. Ok, tot zover werkt het.

Voor sommige items is het helemaal niet nodig dat er rechten op staan, die mogen dus altijd gezien worden. Nu dacht ik als ik een kolom opneem met daarin rechten aan/uit, zou dat dan sneller zijn, bijv:

code:
1
2
3
4
5
SELECT I.*
FROM items I
WHERE ( I.rechten = 0 OR
I.id ... join met rechten tabel etc )
AND ... rest van where clause


Kijkt SQL nu (netzoals CF) als de rechten op 0 staan helemaal niet meer naar de rest van de OR clause?

Natuurlijk ligt dit ook aan welk DBMS je hebt. Ik zou het graag willen weten voor MS-SQL, maar voor andere DBMS'en wil ik het eigenlijk ook wel weten.

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Dat maakt toch niets uit voor het resultaat van je query?

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 12:15
Misschien maakt het wel uit voor de snelheid van de query

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Verwijderd

Topicstarter
nescafe schreef op 02 oktober 2002 @ 20:21:
Misschien maakt het wel uit voor de snelheid van de query
heb ik idd niet gemeld, maar het gaat mij om de snelheid...

  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
In principe wordt een OR altijd van begin tot eind doorlopen. Dus als ie een conditie tegenkomt die true oplevert, hoeft de rest inderdaad niet meer uitgevoerd te worden.
Maar hoe ingewikkeld is de rest van die OR wel niet, dat je je daar druk over maakt?

Never underestimate the power of


Verwijderd

Topicstarter
Nou ja, als de db dat 1000 keer moet doen, dan gaat het toch wel wat uithalen lijkt mij. 1000 is veel, maar ik geef het even ter illustratie. Wat denk je van bijvoorbeeld t.net als die rechten zou hebben, dan is het interessant om dit soort 'mieren-neuk' dingen te doen...

CF bijvoorbeel indexeerd eerst de clause, dan kan hij in heel veel gevallen dus beslissen om al bij de eerste expressie waarde de rest van de clause te laten vallen.
Pagina: 1