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

Forskellen mellem en inline-funktion og en visning

Efter at have læst mange af svarene her, vil jeg gerne bemærke, at der er en stor forskel mellem en inline-tabel-vurderet funktion og enhver anden form for funktion (skalær eller multi-line TVF).

En inline TVF er simpelthen en parameteriseret visning. Den kan udvides og optimeres væk ligesom en udsigt. Det er ikke nødvendigt at materialisere noget før "returnerer resultater" eller noget lignende (selvom syntaksen desværre har en RETURN .

En stor fordel, jeg har fundet ved en inline TVF i forhold til en visning, er, at den fremtvinger den nødvendige parametrering, hvorimod du med en visning skal antage, at den, der ringer på passende vis vil deltage eller begrænse brugen af ​​visningen.

For eksempel har vi mange store faktatabeller i DW med en typisk Kimball-stjernemodel. Jeg har et syn på en faktatabel-centreret model, som kaldes uden nogen begrænsning, vil returnere hundredvis af millioner af rækker. Ved at bruge en inline TVF med passende parametrering er brugere ikke i stand til ved et uheld at bede om alle rækkerne. Ydeevnen kan stort set ikke skelnes mellem de to.



  1. Er der nogen måde at afgøre, om en pakke har tilstand i Oracle?

  2. Hvordan viser jeg i stedet for NULL '0' i resultat med SELECT-sætning sql?

  3. Oprettelse af brugerdefinerede primærnøgler i Rails-applikationen

  4. Array-parameter TSQL