sql >> Database teknologi >  >> RDS >> Sqlserver

Alternativ til at bruge lokale variabler i en where-klausul

Brug af lokale variabler ved HVOR-filteret forårsager FULD TABELSCANNING. Fordi SS ikke kender værdierne af lokale variabler på kompileringstidspunktet. Så det skaber en udførelsesplan for den største skala, der kan være tilgængelig for kolonnen.

For at forhindre ydeevneproblemet skal SS kende variablernes værdier på kompileringstidspunktet. Definere en SP og overføre disse lokale variabler som en parameter er en af ​​løsningen på problemet. En anden løsning er at bruge sp_executesql og sender disse lokale variabler som en parameter igen...

Eller du kan tilføje MULIGHED (GENKOMPILER) i slutningen af ​​din sql-erklæring for at få dine lokale variabler til at blive kompileret. Dette vil løse performans-problemet.



  1. Konverter lokal datotid (med tidszone) til et Unix-tidsstempel i Oracle

  2. Adminer – Et avanceret webbaseret databaseadministrationsværktøj til Linux

  3. MySQLdb Stored Procedure Out-parameter virker ikke

  4. Kan vi importere SQL fra S3 bucket til AWS ec2 (instans)?