कल हमें एक परिदृश्य मिला जहां db field
का प्रकार प्राप्त करना पड़ा और इसके आधार पर हमें फ़ील्ड का विवरण लिखना पड़ा।डाटाबेस फ़ंक्शन वीएस केस स्टेटमेंट
Select (Case DB_Type When 'I' Then 'Intermediate'
When 'P' Then 'Pending'
Else 'Basic'
End)
From DB_table
मैंने इस केस स्टेटमेंट के बजाय एक डीबी फ़ंक्शन लिखने का सुझाव दिया क्योंकि यह अधिक पुन: प्रयोज्य होगा।
Select dbo.GetTypeName(DB_Type)
from DB_table
दिलचस्प हिस्सा है की तरह, हमारे डेवलपर से एक ने कहा का उपयोग कर डेटाबेस समारोह अक्षमdatabase functions
के रूप में कर रहे हैं धीमी Case statement
से हो जाएगा। मैंने जवाब खोजने के लिए इंटरनेट पर खोज की जो दक्षता के मामले में बेहतर दृष्टिकोण है लेकिन दुर्भाग्यवश मुझे कुछ भी नहीं मिला जिसे संतुष्ट उत्तर माना जा सकता है। कृपया मुझे अपने विचारों से उजागर करें, कौन सा दृष्टिकोण बेहतर है?
क्या यह 'dbo.GetTypeName (DB_Type)' समान 'केस' अभिव्यक्ति है? यानी: आप 'केस' अभिव्यक्ति को सीधे एक क्वेरी में लिखने और प्रदर्शन और पुन: उपयोगिता के संदर्भ में उपयोगकर्ता परिभाषित फ़ंक्शन *** में डालकर अंतर के बारे में पूछ रहे हैं। सही? –
हां! सबकुछ एक जैसा है। –