2010-12-15 6 views
13

मैं एक डीबीए नहीं हूं, इसलिए मुझे SQL सर्वर में बाइनरी डेटा संग्रहीत करने के विभिन्न तरीकों का उपयोग करने के अपवाद और डाउनसाइड्स को नहीं पता है।एसक्यूएल सर्वर: बाइनरी डेटा कैसे स्टोर करें (उदा। वर्ड फ़ाइल)?

  • varbinary(n) भंडार केवल 8000 बाइट्स
  • varbinary(max) भंडार 2 जीबी
  • BLOB रों बड़ी फ़ाइलों के लिए हैं, लेकिन "व्यवस्थापकीय" भूमि के ऊपर के साथ आते हैं (फ़ाइलें केवल DB में संदर्भित किया जा रहा है, लेकिन वास्तव पर बैठे स्थानीय हार्डडिस्क)

मैं मूल रूप से लगभग 1000 दस्तावेजों (राशि प्रति वर्ष) जो मैं एक एसक्यूएल सर्वर 2008 R2 डेटाबेस (एक सरल ASPX फार्म अपलोड से भरा जा रहा, डाउनलोड के साथ एक सरल GridView द्वारा देखी जा रही में संग्रहीत करना चाहते हैं)। सभी दस्तावेज शायद 2 एमबी - 8 एमबी (वर्ड, एक्सेल फाइल) होंगे।

MyDocuments 
    Data  varbinary(max) 
    Title  varchar(255) 
    ModifiedOn datetime() 
    ModifiedBy varchar(100) 

varbinary(max) के साथ ट्रैक पर आई एम: मेरा अनुमान कि मैं निम्नलिखित लेआउट के साथ एक मेज MyDocuments का उपयोग करना चाहिए है? या मैं गलत दिशा में जा रहा हूं (उदाहरण के लिए प्रदर्शन-वार)?

+0

बेहतर उन्हें संपीड़ित करने के लिए और फिर एक को बचाने के लिए जाना होगा। –

+0

कोई विकल्प नहीं है क्योंकि वे एकल दस्तावेज़ हैं जिन्हें ग्रिड व्यू में एकल दस्तावेज़ के रूप में संदर्भित किया जाता है। दस्तावेज़ प्रबंधन प्रणाली सोचो। –

+0

अच्छी तरह से सम्मिलित करने से पहले प्रत्येक को संपीड़ित करें। एक्सेल और शब्द फ़ाइलों को एक बहुत उच्च संपीड़न अनुपात मिलता है। यह डेटाबेस आकार को भी कम करेगा। –

उत्तर

16

SQL सर्वर 2008 में 'FILESTREAM' संग्रहण है। यह SQL Server 2008 और NTFS फ़ाइल सिस्टम के संयोजन का उपयोग करके BLOB डेटा के संग्रहण और कुशल पहुंच की अनुमति देता है।

आप इन बाहर की जाँच कर सकते हैं:

FILESTREAM Storage in SQL Server 2008
Saving and Retrieving File Using FileStream SQL Server 2008

संपादित करें: 256K की तुलना में छोटे
वस्तुओं सबसे अच्छा एक डेटाबेस में संग्रहीत हैं, जबकि वस्तुओं 1M से भी बड़ा सबसे अच्छा फाइल सिस्टम में संग्रहीत हैं।

प्रदर्शन: Varbinary बनाम FILESTREAM

http://www.sqlskills.com/BLOGS/PAUL/post/SQL-Server-2008-FILESTREAM-performance.aspx
To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem
SQL Server 2008 FILESTREAM performance

+0

मैंने 'FILESTREAM' के बारे में सुना है - मैं 'varbinary (अधिकतम)' का उपयोग क्यों नहीं करूंगा? –

+0

यदि फ़ाइलें 1 एमबी से कम हैं तो varbinary का उपयोग करें FILESTREAM का उपयोग करें। संपादन की जांच करें। –

+0

मेरे लिए अच्छा लगता है। धन्यवाद असीम! –

संबंधित मुद्दे