एक इनलाइन तालिका-मूल्यवान फ़ंक्शन बनाने का प्रयास करें। उदाहरण:
CREATE FUNCTION dbo.fxnExample (@Parameter1 INTEGER)
RETURNS TABLE
AS
RETURN
(
SELECT Field1, Field2
FROM SomeTable
WHERE Field3 = @Parameter1
)
-- Then call like this, just as if it's a table/view just with a parameter
SELECT * FROM dbo.fxnExample(1)
यदि आप चयन के लिए निष्पादन योजना देखते हैं तो आपको फ़ंक्शन का उल्लेख बिल्कुल नहीं दिखाई देगा और वास्तव में आपको केवल अंतर्निहित तालिकाओं को पूछताछ की जा रही है। यह अच्छा है क्योंकि इसका मतलब है कि क्वेरी के लिए निष्पादन योजना तैयार करते समय अंतर्निहित तालिकाओं के आंकड़ों का उपयोग किया जाएगा।
बचने की बात एक बहु-कथन तालिका मूल्यवान फ़ंक्शन होगी क्योंकि अंतर्निहित तालिका आँकड़ों का उपयोग नहीं किया जाएगा और खराब निष्पादन योजना के कारण खराब प्रदर्शन हो सकता है।
क्या से बचें का उदाहरण :
CREATE FUNCTION dbo.fxnExample (@Parameter1 INTEGER)
RETURNS @Results TABLE(Field1 VARCHAR(10), Field2 VARCHAR(10))
AS
BEGIN
INSERT @Results
SELECT Field1, Field2
FROM SomeTable
WHERE Field3 = @Parameter1
RETURN
END
सूक्ष्म रूप से भिन्न, लेकिन किसी क्वेरी में फ़ंक्शन का उपयोग किए जाने पर प्रदर्शन में संभावित रूप से बड़े अंतर के साथ।