sql >> Database >  >> RDS >> Sqlserver

Alternatief voor het gebruik van lokale variabelen in een waar-clausule

lokale variabelen gebruiken at WHERE filter veroorzaakt FULL TABLE SCAN. Omdat SS de waarden van lokale variabelen tijdens het compileren niet kent. Het creëert dus een uitvoeringsplan voor de grootste schaal die voor de kolom beschikbaar kan zijn.

Om het prestatieprobleem te voorkomen, moet SS de waarden van de variabelen kennen tijdens het compileren. Een SP definiëren en deze lokale variabelen doorgeven als parameter is een van de oplossingen van het probleem. Een andere oplossing is het gebruik van sp_executesql en die lokale variabelen opnieuw als parameter doorgeven...

Of u kunt OPTIE ( RECOMPILE ) . toevoegen aan het einde van uw sql-instructie om uw lokale variabelen te compileren. Dit lost het prestatieprobleem op.



  1. Fix "ERROR 1054 (42S22):Onbekende kolom 'colname' in 'orderclausule' in MariaDB

  2. pqxx hergebruik / heractiveer een werktransactie

  3. Sorteren als Hacker News

  4. Slaapstand @OrderBy met klasse waarnaar wordt verwezen