Struppi: Sql Abfrage noch optimierungsfähig?

Beitrag lesen

Ein Objekt hat zwei Bit-Flags, die unabhängig voneinander true (1)
oder false (0) sein können, damit ergeben sich 4 mögliche Zustände
pro Datensatz:
1 1
1 0
0 1
0 0

Die Tabelle sieht entsprechend aus:

Id      Payload       Flag1      Flag2

1       ...           1          0
2       ...           1          1
3       ...           0          0

Ich hab nicht alles verstanden, aber warum verwendest du hier zwei Bitflags statt einer Zahl wo du die entpsrechenden Bits setzt?

Dann ließe sich die Abfrage auch einfach mit einer Bedigung aufbauen (übrigens dürften Bitoperation nicht zeitkritisch sein, da diese zusammen mit incr, decr die maschinennahsten Operationen sind und zumindest die ausführungszeit extrem schnell ist)

Also in etwa so:
Id      Payload       Flag
----------------------------------------------
1       ...           1
2       ...           3
3       ...           0

und dann:

[ ] Elemente mit Flag 1 gesetzt

WHERE Flag & 1

[ ] Elemente mit Flag 2 gesetzt

WHERE Flag & 2

[ ] alle anderen Elemente                 (beide Flags sind 0)

WHERE Flag & 0

und auch möglich:

[ ] alle Elemente mit Flag1 und Flag2

WHERE Flag & 3

Struppi.