2009-07-14 5 views
8

वर्तमान में हमारे पास फ़ोल्डरों/उप फ़ोल्डर्स में संग्रहीत हजारों माइक्रोसॉफ्ट वर्ड फाइलें, एक्सेल फाइलें, पीडीएफ, इमेज इत्यादि हैं। ये नियमित रूप से एक आवेदन द्वारा उत्पन्न होते हैं और उस एप्लिकेशन के भीतर किसी भी समय पहुंचा जा सकता है। जैसा कि हम अपग्रेड करना चाहते हैं, हम अब इन सभी दस्तावेज़ों को SQL सर्वर 2005 के भीतर संग्रहीत करने की तलाश में हैं। इसके लिए कारण दस्तावेजों को संपीड़ित करने, उन दस्तावेजों पर अधिक जानकारी संग्रहीत करने और जहां आवश्यक हो वहां इंडेक्स लागू करने के लिए अतिरिक्त फ़ील्ड जोड़ने पर आधारित हैं।SQL सर्वर में फ़ाइलें संग्रहीत करें या उन्हें फ़ाइल सर्वर पर रखें?

मुझे लगता है कि मैं क्या कर रहा हूं एसक्यूएल सर्वर का उपयोग फाइल सर्वर पर रखने के बजाए दस्तावेज़ संग्रह के रूप में करने के पेशेवरों और विपक्ष के साथ-साथ ऐसा करने में आपके अनुभव में भी हो सकता है।

हम इस कार्य को करने के लिए सी # और विंडोज वर्कफ़्लो का उपयोग करेंगे।

आपकी टिप्पणियों के लिए धन्यवाद।

संपादित


कितना बड़ा फ़ाइलें हैं?

आकार में 100k = 200k के बीच (औसत। 70KB)

कितने हो जाएगा?

फिलहाल यह लगभग 3.1 मिलियन फाइलें (शब्द/एक्सेल और पीडीएफ से लेकर) है, जो दिन में 2,600 तक बढ़ सकता है। (वृद्धि समय के साथ भी बढ़ेगी)

कितने पढ़ते हैं?

यह एक को मापना मुश्किल है क्योंकि हमारे पुराने सिस्टम/एप्लिकेशन ने इसे काम करना मुश्किल बना दिया है।


इसके अलावा एक और उपयोगी लिंक बताया पर एक समान पद पेशेवरों और दोनों तरीकों में से विपक्ष को शामिल किया गया।

Files Stored on DB vs FileSystem - Pros and Cons

+0

फाइलें कितनी बड़ी हैं? कितने होंगे? कितने पढ़ते हैं? इस तरह के निर्णय हमेशा मेट्रिक्स होने चाहिए। – Ricardo

+1

संभावित डुप्लिकेट ... देखें http://stackoverflow.com/questions/616762/what-is-the-best-way-to-associate-a-file-with-a-piece-of-data –

+0

निश्चित रूप से समान मेरा निर्माण करते समय मैंने जगह नहीं ली। वहां अच्छे अच्छे और विपक्ष। – kevchadders

उत्तर

8

मेरे पास दोनों होंगे।

मैं फ़ाइलों को एक अद्वितीय नाम के साथ बदल दिया जाएगा, इस प्रकार प्रबंधन करना आसान होगा, और मैं डेटाबेस के अंदर सभी मेटा डेटा रखूंगा (फाइल का नाम, सामग्री-प्रकार, फ़ाइल सिस्टम, आकार, विवरण, आदि पर स्थान), इसलिए फ़ाइलों को डेटाबेस (अप्रत्यक्ष रूप से) के माध्यम से उपयोग किया जाता है।

लाभ:

  • फ़ाइलों को संभालने के लिए आसान कर रहे हैं; आप मिश्रण
  • में कई ड्राइव ला सकते हैं डेटाबेस डेटाबेस विवरण सहित किसी भी मेटा जानकारी को रख सकता है, जिसमें आप खोज सकते हैं।
  • फ़ाइल पर ट्रैक एक्सेस करता है और अन्य आंकड़ों जानकारी
  • विभिन्न मानदंड का उपयोग करके फ़ाइलें पुन: व्यवस्थित रखें: पेड़ (निर्देशिका संरचना), टैग, खोज या संदर्भ

तुम भी एक ड्राइव पर संपीड़न हो सकता है। आपके पास बैकअप और गति के लिए RAID हो सकती है।

1

दस्तावेज किस तरह के बारे में हम बात कर रहे हैं?

आपके SQL सर्वर में दस्तावेज़ संग्रहीत करना उपयोगी हो सकता है क्योंकि आप दस्तावेज़ों को अन्य तालिकाओं से जोड़ सकते हैं और पूर्ण-पाठ अनुक्रमणिका जैसे तकनीकों का उपयोग कर सकते हैं और फ़ज़ी खोजों जैसी चीजें कर सकते हैं।

एक नकारात्मक पक्ष यह है कि दस्तावेज़ों का बैकअप बनाना थोड़ा कठिन हो सकता है। और NTFS संपीड़न या अन्य तकनीकों के साथ संपीड़न भी संभव है।

+0

वे मिर्कोसॉफ्ट वर्ड डॉकमेंट्स होंगे। – kevchadders

+0

sry ... भी एक्सेल और पीडीएफ फाइलें भी। – kevchadders

+0

चित्रों को भी जेपीईजी और बीएमपी फाइलों को संग्रहित करता है। – JamesM

1

क्या ये दस्तावेज़ टेक्स्ट आधारित हैं और क्या आप इन दस्तावेज़ों को खोजने के लिए SQL सर्वर की पूर्ण पाठ खोज का उपयोग करने की योजना बना रहे हैं? यदि नहीं, तो मुझे डेटाबेस पर इन दस्तावेज़ों को संग्रहीत करने में कोई लाभ नहीं दिख रहा है। संभोग, आप हमेशा डेटाबेस से पथ जानकारी सहित दस्तावेज़ों से संबंधित मेटा डेटा स्टोर कर सकते हैं।

+0

हम उन दस्तावेज़ों पर मेटा डेटा स्टोर करने के लिए पूर्ण टेक्स्ट खोज के साथ-साथ अतिरिक्त फ़ील्ड जोड़ने का उपयोग करेंगे। – kevchadders

1

डीबी में डॉक्स को रोकने का एक बड़ा लाभ यह है कि उन्हें सुरक्षा पहुंच को नियंत्रित करना बहुत आसान हो जाता है, क्योंकि आप इसे अपने ऐप में एक्सेस कंट्रोल के माध्यम से कर सकते हैं। किसी फ़ाइल सर्वर पर उन्हें संग्रहीत करने के लिए किसी भी प्रत्यक्ष पहुंच को रोकने के लिए फ़ाइल और फ़ोल्डर स्तर पर निजी निजीकरण से निपटने की आवश्यकता होती है। उन्हें डीबी में भी बैकअप के एक बिंदु के लिए बनाता है, ताकि आप अधिक आसानी से पूर्ण प्रतिलिपि बना सकें और/या आवश्यकता होने पर इसे चारों ओर ले जा सकें।

12

यदि आप SQL Server 2008 में सभी तरह से अपग्रेड करते हैं, तो आप नई FILESTREAM सुविधा का उपयोग कर सकते हैं, जो दस्तावेज़ को किसी तालिका में कॉलम के रूप में प्रकट करने की अनुमति देता है, फिर भी इसे किसी फ़ाइल पर फ़ाइल के रूप में रहने के लिए, जहां यह किसी प्रोग्राम (जैसे वर्ड) द्वारा सीधे पहुंचा जा सकता है।

+0

अच्छा, उस क्षमता के बारे में नहीं पता था। – kenny

17

दस्तावेज़ आकार के लिए अंगूठे का नियम है:

size < 256 kb: store in db 
265 kb < size < 1 MB: test for your load 
size > 1 Mb: store on file system 

संपादित करें: अंगूठे का यह नियम भी एसक्यूएल सर्वर 2008

+2

+1 एक व्यावहारिक दृष्टिकोण। –

1

के बजाय एक कस्टम डीएमएस (दस्तावेज़ प्रबंधन प्रणाली) लिखित रूप में FILESTREAM संग्रह के लिए लागू होता है, आपको शायद एक खरीदने या WSS/SharePoint का उपयोग करने पर विचार करना चाहिए क्योंकि यह सभी विशाल विवरण (संग्रहण, अनुक्रमण, मेटा-डेटा) को संभालेगा और आपको शीर्ष पर अपनी कस्टम कार्यक्षमता बनाने देगा।

+0

शेयरपॉइंट पर विचार किया गया था लेकिन लागत बहुत अधिक समझा गया था! :( – kevchadders

+0

कौन सी लागत? यह मुफ्त प्रति-सर्वर है। –

+0

मेरी समझ विंडोज़ शेयरपॉइंट सर्विसेज (डब्लूएसएस) एक मुफ्त संस्करण है जो बहुत सी सीमा के साथ आता है। लाइसेंस प्राप्त संस्करण मैं माइक्रोसॉफ्ट ऑफिस शेयरपॉइंट सर्वर (एमओएसएस) था। किसी भी भ्रम के लिए माफ़ी। – kevchadders

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