sql >> Database >  >> RDS >> Sqlserver

Selecteer waar clausule evaluatievolgorde

Er zijn geen garanties voor de evaluatievolgorde. De optimizer zal proberen de meest efficiënte manier te vinden om de zoekopdracht uit te voeren, gebruikmakend van beschikbare informatie.

In uw geval, aangezien c is geïndexeerd en d niet, moet de optimizer in de index kijken om alle rijen te vinden die overeenkomen met het predikaat op c, en vervolgens die rijen ophalen uit de tabelgegevens om het predikaat op d te evalueren.

Als het echter vaststelt dat de index op c niet erg selectief is (hoewel niet in uw voorbeeld, wordt een geslachtskolom zelden nuttig geïndexeerd), kan het besluiten om toch de tabelscan uit te voeren.

Om de uitvoeringsvolgorde te bepalen, moet u een uitlegplan voor uw zoekopdracht krijgen. Realiseer je echter dat dat plan kan veranderen, afhankelijk van wat de optimizer op dit moment de beste zoekopdracht vindt.



  1. PL/Perl stuur mail in Postgresql

  2. Wat kan ervoor zorgen dat een Oracle ROWID verandert?

  3. PHP:Online Offline-status

  4. Fout 1062 - Dubbele invoer '127' voor sleutel 'PRIMARY' - kan de reden niet vinden