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

udf vs prestazioni sql dirette

  • Se vuoi unirti a Purchases.CustomerID dovresti metterci un indice.
  • Se esegui spesso query su intervalli di valori, dovresti inserire un indice anche su quello.

Dato che stai chiedendo al server SQL di scegliere tra due cattivi piani.

SQL Server può indovinare all'incirca quanti acquisti saranno coperti da > 1000 query e sceglierà un piano basato su quello.

Tuttavia non può indovinare quanti saranno coperti dalla query UDF, quindi potrebbe scegliere un piano diverso. Poiché l'ignoranza continua, potrebbe essere migliore o peggiore dell'altro piano a seconda di quanto è buono.

Puoi vedere i piani generati e ti dirà il numero stimato di righe in ogni piano e anche il numero effettivo. Questi numeri stimati rappresentano la scelta del piano in ogni caso.