sql >> Database >  >> RDS >> Sqlserver

udf versus directe sql-prestaties

  • Als je mee wilt doen op Purchases.CustomerID je zou er een index op moeten zetten.
  • Als je vaak naar waardebereiken zoekt, moet je daar ook een index op zetten.

Zoals het is, vraag je SQL-server om te kiezen tussen twee slechte plannen.

SQL Server kan ongeveer raden hoeveel aankopen worden gedekt door de > 1000 query, en zal op basis daarvan een plan kiezen.

Het kan echter niet raden hoeveel er worden gedekt door de UDF-query, dus het kan een ander plan kiezen. Omdat het onwetendheid is, kan het beter of slechter zijn dan het andere plan, afhankelijk van hoe goed de gok is.

U kunt de gegenereerde plannen zien en het zal u het geschatte aantal rijen in elk plan vertellen, en ook het werkelijke aantal. Die geschatte aantallen zijn verantwoordelijk voor de keuze van het plan in elk geval.




  1. Selecteer DATEADD minuten met query SQL Server 2008

  2. PHP kan geen verbinding maken met mysql via python

  3. Null-waarde-items in de database blokkeren

  4. Een globale tijdelijke tabel maken in Oracle