माइक्रोसॉफ्ट रिसर्च द्वारा एक बहुत अच्छा पेपर है जिसे टू ब्लॉब या नॉट टू ब्लॉब कहा जाता है।
बड़ी संख्या में प्रदर्शन परीक्षण और विश्लेषण के बाद उनका निष्कर्ष यह है:
-
यदि आपके चित्र या दस्तावेज़ आमतौर पर 256KB से कम आकार के हैं, तो उन्हें डेटाबेस VARBINARY कॉलम में संग्रहीत करना अधिक कुशल है
-
यदि आपके चित्र या दस्तावेज़ आमतौर पर 1 एमबी से अधिक आकार के हैं, तो उन्हें फाइल सिस्टम में संग्रहीत करना अधिक कुशल है (और SQL सर्वर 2008 की FILESTREAM विशेषता के साथ, वे अभी भी लेनदेन नियंत्रण और डेटाबेस का हिस्सा हैं)
-
उन दोनों के बीच, यह आपके उपयोग के आधार पर थोड़ा सा उछाल है
यदि आप अपने चित्रों को SQL सर्वर तालिका में रखने का निर्णय लेते हैं, तो मैं उन चित्रों को संग्रहीत करने के लिए एक अलग तालिका का उपयोग करने की दृढ़ता से अनुशंसा करता हूं - कर्मचारी तालिका में कर्मचारी फ़ोटो संग्रहीत न करें - उन्हें एक अलग तालिका में रखें। इस तरह, कर्मचारी तालिका दुबला और मतलबी और बहुत कुशल रह सकती है, यह मानते हुए कि आपको अपने प्रश्नों के भाग के रूप में हमेशा कर्मचारी फोटो का चयन करने की आवश्यकता नहीं है।
फ़ाइल समूह के लिए, परिचय के लिए फ़ाइलें और फ़ाइल समूह आर्किटेक्चर देखें। मूल रूप से, आप या तो शुरुआत से ही बड़े डेटा संरचनाओं के लिए एक अलग फ़ाइल समूह के साथ अपना डेटाबेस बनाएंगे, या बाद में एक अतिरिक्त फ़ाइल समूह जोड़ेंगे। चलिए इसे "LARGE_DATA" कहते हैं।
अब, जब भी आपके पास बनाने के लिए कोई नई तालिका हो, जिसमें VARCHAR(MAX) या VARBINARY(MAX) स्तंभों को संग्रहीत करने की आवश्यकता हो, तो आप बड़े डेटा के लिए इस फ़ाइल समूह को निर्दिष्ट कर सकते हैं:
CREATE TABLE dbo.YourTable
(....... define the fields here ......)
ON Data -- the basic "Data" filegroup for the regular data
TEXTIMAGE_ON LARGE_DATA -- the filegroup for large chunks of data
फ़ाइल समूह पर MSDN परिचय देखें, और इसके साथ खेलें!