Scalar User-defined Functions in SQL Server 2019 – the Why, What, and How of FROID
This page contains the description for my conference session “Scalar User-defined Functions in SQL Server 2019 – the Why, What, and How of FROID”, and links to the slide deck of this presentation.
|Target audience||Intermediate and experienced database developers and DBAs.|
|Short description||A quick overview at “Scalar UDF inlining” (FROID), one of the new performance features in SQL Server 2019. Why is it needed? What does it do? And how does it work?|
|Duration||This session is a 20 minute “fast focus” session.|
|Full abstract||Scalar user-defined functions (UDFs) can be great for development, since they allow easy code reuse and encapsulation. But they tend to have disastrous effects on performance in SQL Server. This forced developers into an impossible choice: use UDFs and accept worse performance (and the wrath of your DBA), or copy and paste your code all over the place and risk future maintenance.
But that will change in SQL Server 2019! Carefully hidden as “just one of the features” under the Intelligent Query Processing umbrella is “FROID” – a framework that enables SQL Server to use UDFs without suffering the drawbacks!
In this session, we will look at why UDFs traditionally are such a performance bottleneck. We will then look at what exactly changes with FROID, and how all of this works under the covers.
Is this really the panacea that MS marketing wants you to believe? Can we now finally have our cake and eat it too? Or are there limitations and problems we should be aware of?
Come to this session to find the answer to all those questions!
This session has not yet been presented. I am still working on the slide deck and the demos. The “final” version of the slide deck and demo code will be uploaded here once I have a version that I am happy with, or when I first present this session (whichever comes soonest).
(Note: my presentations tend to evolve over time, so the version you find here may not be an exact match for the version you witnessed)