Scalar UDFs run row-by-row → slowest possible execution.
✔ Replace with Inline Table-Valued Function
CREATE FUNCTION GetPrice(@id INT) RETURNS TABLE AS RETURN SELECT Price FROM Products WHERE Id = @id;
Then:
SELECT p.*, f.Price FROM Orders o CROSS APPLY GetPrice(o.ProductId) f;
💡 Boost
CPU ↓, IO ↓, query ↑.
