गरीब आंतरिक डेटाबेस - इसे बदलें या उस पर चक हार्डवेयर?


39

इसलिए - हमारे पास एक आंतरिक कंपनी डेटाबेस है, सामान्य प्रकार का सामान: क्लाइंट्स, फोन कॉल, बिक्री सौदों और ग्राहक समझौतों / योजनाओं का प्रबंधन करता है।

यह एक एक्सेस 2000 फ्रंट-एंड, और SQL Server 2000 स्टैंडर्ड बैक-एंड है। सिंगल सर्वर, ड्यूल Xeon 3.2GHz, 2GB RAM, विंडोज सर्वर 2003, पूरे दिन में लगभग 40% CPU लोड प्राप्त करता है, जो OS (HT) के दृश्यमान 4 कोर में फैला है।

बैक-एंड डेटाबेस को खराब तरीके से डिज़ाइन किया गया है, और कम-से-कुशल व्यक्तियों द्वारा बनाए रखा गया है। यह बुरी तरह से सामान्यीकृत है, और कुछ स्पष्ट समस्याओं में कोई प्राथमिक कुंजी या सूचकांक के साथ हजारों पंक्तियों की दसियों पंक्तियाँ शामिल हैं, जिनका उपयोग सिस्टम के कुछ सबसे अधिक उपयोग किए जाने वाले कुछ हिस्सों के लिए मल्टी-टेबल जॉइन में भी किया जाता है (जैसे कि कॉल प्रबंधक एप्लिकेशन जो हर दिन 8 घंटे के लिए हर किसी के दूसरे मॉनिटर पर बैठता है और हर कुछ सेकंड में एक बड़ी अक्षमतापूर्ण क्वेरी चलाता है)।

फ्रंट-एंड बहुत बेहतर नहीं है, यह सैकड़ों रूपों की विशिष्ट गड़बड़ी है, सहेजे गए प्रश्नों को नेस्टेड किया गया है, VBA कोड में खराब SQL लिखा हुआ है, दर्जनों "quirks" आदि, और जब भी कोई बदलाव किया जाता है तो कुछ टूटने लगता है। हम एक एमडीबी पर बस गए हैं जो "अच्छी तरह से काम करता है" और अब उस पर कोई परिवर्तन नीति नहीं है क्योंकि हमारे पास घर में कोई एक्सेस हैवीवेट नहीं है (और किसी को भी किराए पर लेने की कोई योजना नहीं है)।

कंपनी अब धीरे-धीरे बढ़ रही है, ग्राहकों की संख्या बढ़ रही है, कॉल आदि, साथ ही साथ समवर्ती उपयोगकर्ताओं की संख्या में मामूली वृद्धि हुई है, और प्रदर्शन अभी हाल ही में बदतर हो रहा है (प्रपत्रों के बीच स्थानांतरित करने के लिए, सूचियों का इंतजार करने के लिए इंतजार करना आदि) )

पर्फोमन कहते हैं:

  • डिस्क प्रति सेकंड स्थानांतरित होती है: 0 और 30 के बीच, औसत 4।
  • वर्तमान डिस्क कतार की लंबाई: 1 के आसपास घूमती है

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

वैसे, हमारे पास 100MB और गीगाबिट ईथरनेट का मिश्रण है, सभी एक सबनेट पर, दो मंजिलों में 40 ish उपयोगकर्ता हैं।

सवाल करने के लिए।

जैसा कि मैंने देखा कि इस स्थिति को हल करने / सुधारने के लिए हमारे पास दो विकल्प हैं।

  • हम इसे स्क्रैप कर सकते हैं और इसे पूरी तरह से नए CRM सिस्टम के साथ बदल सकते हैं, या तो bespoke या part bespoke
  • हम इस सिस्टम के जीवन का विस्तार हार्डवेयर को चक करके कर सकते हैं।

हम सॉफ्टवेयर की जगह की तुलना में कम लागत के परिमाण के लिए पागल प्रदर्शन संख्या के साथ एक इंटेल i7 प्रणाली का निर्माण कर सकते हैं।

जब एक नया सिस्टम अंततः विकसित होता है, तो इसे इस बॉक्स पर होस्ट किया जा सकता है, इसलिए कोई भी व्यर्थ हार्डवेयर नहीं है। एक नया सीआरएम सिस्टम बंद रखा जा रहा है, और बंद हो रहा है - मैं नहीं देखता कि कम से कम एक साल के लिए हो रहा है।

इस स्थिति पर कोई भी विचार, खासकर यदि आप खुद यहां हैं, तो सबसे अधिक सराहना की जाएगी।

धन्यवाद


6
विवरण और सामग्री दोनों के लिए +1। यह एक ऐसी चीज है जिसे हम सभी रोजाना देखते हैं।
डेटन ब्राउन

मुझे भी। बड़ा सवाल है।
जोसेफ केर्न

1
DTA के आउटपुट का मतलब यह नहीं है कि आप डेटाबेस ऑप्टिमाइज़ेशन की सीमा तक पहुँच चुके हैं। में एक SQL सर्वर विशेषज्ञ जाओ! वे चमत्कार कर सकते हैं और आपके मौजूदा हार्डवेयर को जीवन के कुछ और साल दे सकते हैं
निक कवादिस

जवाबों:


20

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

मैं वास्तव में उस कारण से किसी कंपनी के लिए वेब ऐप्स के एक सेट की मेजबानी करने वाला हूं। आंतरिक आईटी विभाग इसे बेहतर हार्डवेयर में स्थानांतरित नहीं करेगा क्योंकि वे उन्हें एक नए प्लेटफॉर्म पर पुनर्विकास करना चाहते हैं। यह लागत लगभग तीन गुना है जो इसे नए हार्डवेयर में ले जाने के लिए खर्च होगी। यह भी उल्लेख नहीं है कि कंपनी का अनुबंध एक वर्ष में नवीनीकृत नहीं हो सकता है।


उनका सवाल था "न्यूहार्डवेयर या न्यूसीआरएम" नहीं "न्यूहार्डवेयर और न्यूसीआरएम" ... और वास्तव में आप बोर्ड के खिलाफ नहीं जा रहे हैं (एक नया सीआरएम खरीदें), तो सवाल को फिर से तैयार करना (ओआर से एंड तक)।
जोसेफ केर्न

यहाँ कुछ अन्य टिप्पणियाँ "दोनों करें" कह रही हैं। अगर वह दोनों करता है, तो वास्तव में कोई सवाल नहीं है। लेकिन क्या वह दोनों को करने का जोखिम उठा सकता है?
जोसेफ केर्न

जोसेफ, मैंने नीचे पूर्ण उत्तर दिया, लेकिन - नया हार्डवेयर, प्लस हाल के सर्वर संस्करणों में अपग्रेड करना, साथ ही कुछ प्रश्नों को अनुकूलित करना और अनुक्रमित जोड़ना संभवतः सबसे प्रभावी होगा। आप प्रतिस्पर्धी लाभ नहीं देना चाहते हैं जो कस्टम CRM छोटे, बढ़ते व्यवसायों को देते हैं।
कार्ल काटज़के

माई डू दोनों, अगर आप इसे पढ़ते हैं, तो इसे रीवाइंड करते समय हार्डवेयर को चालू रखा गया था। संसाधनों पर निर्भर करता है कि इसकी जरूरत है कि इसके कुछ हिस्सों को रीफेयर करने के दौरान RAM में सौ $ $ का एक जोड़ा हो सकता है। मुद्दों को दिखाते हुए वह इसे खंगालना चाहते थे और पूरी तरह से नए के साथ जा रहे थे कि क्या नया एक कस्टम लिखित प्रणाली है या बॉक्स से बाहर की ओर मुड़ें।
SpaceManSpiff

बड़ी तस्वीर को देखने के लिए +1: इससे डेवलपर्स / आईटी को फेंकने की तुलना में उस पर हार्डवेयर फेंकने में कम खर्च आएगा। जब तक आप एक ऑफ-द-शेल्फ सीआरएम नहीं पा सकते हैं जो आपकी ज़रूरत का सब कुछ करता है, सर्वर से कम खर्च करता है, और इसे स्थानांतरित करने के लिए कोई समय नहीं लगेगा, अर्थात।
एरनी

14

आपको ऐसा करने की आवश्यकता नहीं है। मेरा सुझाव केवल तालिका में कुछ अनुक्रमित / कुंजियों को जोड़ना है।

बिना किसी प्राथमिक कुंजी या इंडेक्स वाली हज़ारों पंक्तियों वाली टेबल्स, जिनका उपयोग मल्टी-टेबल जॉइन में भी किया जाता है

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


3
+1 या 100 का एक कारक - उचित अनुक्रमित को कम करके आंका नहीं जाना चाहिए ...
Oskar Duveborn

8

डिस्क I / O की कमी का अर्थ है कि क्वेरीज़ ज्यादातर RAM से बाहर होती हैं। यदि आप 'अचानक' अपनी गर्म तालिकाओं को रैम में फिट नहीं करते हैं और सर्वर डिस्क काम करना शुरू कर देता है, तो आप खराब सवारी के लिए हो सकते हैं। 2GB या RAM इन दिनों बहुत ज्यादा नहीं है, लेकिन SQL2000 के युग में यह बहुत बड़ा हो सकता है। मैं अनुमान लगा रहा हूं कि आमतौर पर जिस डेटा में एप्लिकेशन हेरफेर करता है, उसकी मात्रा आपके पास मौजूद RAM से छोटी होती है। आप डेटा फ़ाइलों में "उपयोग" स्थान की मात्रा को देखना चाह सकते हैं। इससे आपको अंदाजा होगा कि डेटाबेस कितना रैम का उपभोग कर सकता है, सबसे खराब स्थिति में। SQL सर्वर उस डेटा को नहीं रखता है जिसकी उसे RAM में आवश्यकता नहीं है, लेकिन यह जानना मुश्किल हो सकता है कि तालिकाओं का उपयोग और कब किया जाता है।

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

"एक मिनट में सैकड़ों हजारों प्रश्न" हजारों प्रश्नों का एक दूसरे के लिए अनुवाद करता है। यह बहुत व्यस्त लगता है, लेकिन उस ट्रैफिक का अधिकतर हिस्सा एक्सेस द्वारा कर्सर ले जाना हो सकता है। SQL से परिणाम सेट को कुशलतापूर्वक प्राप्त करने पर एक्सेस विशेष रूप से खराब है। आप SQL सर्वर समानांतर सेटिंग बंद करके बेहतर प्रदर्शन प्राप्त कर सकते हैं।

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

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

यदि डेटाबेस स्कीमा वास्तव में खराब है, तो आप टेबलों पर अनुक्रमण को देखकर बस कुछ प्रदर्शन जीत सकते हैं। उन तालिकाओं पर ध्यान केंद्रित करें जिन्हें आप जानते हैं कि अक्सर परेशान हो जाते हैं। आप सर्वर के विरुद्ध चल रहे प्रश्नों को देखने के लिए प्रोइलर का उपयोग कर सकते हैं, बस इसे ऐसे प्रश्नों की तलाश करने के लिए कहें जो बहुत अधिक डेटा (जैसे 100,000 पृष्ठ) पढ़ते हैं और फिर उन प्रश्नों की ओर काम करते हैं जो अधिक नहीं पढ़ते हैं। आपने उल्लेख किया कि कुछ तालिकाओं में कुंजियाँ नहीं हैं। क्या डेटा में प्राकृतिक चाबियाँ हैं, बस बाधाओं या अद्वितीय अनुक्रमितों द्वारा लागू नहीं की जाती हैं?

क्या तालिकाओं में गुच्छेदार सूचकांक होते हैं? गुच्छेदार अनुक्रमण की कमी के कारण सभी प्रकार के द्वितीयक प्रभाव हो सकते हैं।

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

अंत में, यह पूछने लायक है: क्या मेजों पर रखरखाव (रिंडेक्सिंग और / या अपडेट आँकड़े) किए जा रहे हैं?


+1 अक्सर उपयोग की जाने वाली तालिकाओं में स्तंभों को ठीक से अनुक्रमित करने का प्रयास करें, थोड़े से भाग्य के साथ इसे ठीक करना आसान और तेज़ हो सकता है - यदि नहीं, तो आपके या जो भी डीबीए / डीबीए है, थोड़ा समय बहुत महंगा नहीं होना चाहिए ठेकेदार छोड़ दें और जल्दी से आगे बढ़ें अगर ऐसा न लगे कि उस पर गोली
चलाने के

पहुंच है नहीं है जब तक कि एप्लिकेशन खराब तरीके से तैयार किया गया है "कुशलता से एसक्यूएल से परिणाम सेट पुन: प्राप्त करने पर विशेष रूप से बुरा"। जब यह SQL सर्वर को अनुरोध भेजता है तो जेट / एसीई बुरी धारणा बना सकता है। एक ऐसा है कि Jet / ACE एक बैच अद्यतन प्रति पंक्ति एक अद्यतन में टूट जाता है। यह एक प्रदर्शन के दृष्टिकोण से भयानक है, लेकिन यह एक अच्छा सर्वर नागरिक होने की कोशिश कर रहा है, क्योंकि यह सर्वर को अन्य उपयोगकर्ताओं के साथ अनुरोधों को क्रमबद्ध और वर्गीकृत करने की अनुमति देता है, जैसा कि संभावित रूप से एक लंबे अपडेट के साथ सब कुछ बांधने का विरोध करता है। यह ऑपरेशन सर्वर साइड को SPROC में ले जाकर काम किया जा सकता है।
डेविड डब्ल्यू फेंटन

मेरे द्वारा देखे जाने वाले अधिकांश एक्सेस ऐप डिज़ाइन नहीं किए गए हैं, वे केवल एक प्रकार के होते हैं और फिर 'ऑर्गेनिक रूप से' विकसित होते हैं। मैं नेटवर्क ट्रैफ़िक और विलंबता के साथ पंक्ति के द्वारा बड़े परिणाम सेट पंक्ति को पुनः प्राप्त करने का एक्सेस का शिकार हुआ हूं, जो इस तरह के व्यवहार के साथ आता है, इसलिए कई बार मैंने गिनती बंद कर दी। मुझे 100% यकीन नहीं है कि यह एक्सेस के आधुनिक संस्करणों के साथ तय नहीं किया गया है जो जेट / ऐस के बजाय SNAC जैसी किसी चीज़ का उपयोग कर सकते हैं या यदि यह ऐसा कुछ है जिसे अधिक जानकार एक्सेस कोडर्स द्वारा काम किया जा सकता है, लेकिन यह कुछ ऐसा है मैंने अक्सर देखा है।
स्ट्रेट डैरिन

6

यह एक व्यावसायिक प्रश्न है, तकनीकी प्रश्न नहीं है।

एक व्यवसाय के स्वामी के रूप में: व्यवसाय के लिए प्रणाली कितनी रणनीतिक है? कम सामरिक, कम देखभाल और इसे ठीक करने और खर्च किए गए किसी भी पैसे, वह पैसा है जो मैं अपने व्यवसाय को विकसित करने के लिए कहीं और उपयोग कर सकता हूं।

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

एक आईटी सलाहकार के रूप में: आपकी प्रणाली विरासत है और इसमें परिचालन लागत छिपी हुई है। हम आपके लिए सही है कि भविष्य के विकास और रणनीतिक लाभ के लिए एक मंच प्रदान करेगा एक प्रणाली डिजाइन कर सकते हैं। यहां साइन इन करें और आपके सभी सपने सच हो जाएंगे।

एक आईटी कर्मचारी के रूप में: मैं यहां सुपरहीरो बन सकता हूं और इस चीज से नरक का अनुकूलन करके एक आसन्न आपदा को टालकर कंपनी को बचा सकता हूं! मेरे प्रबंधक ने मुझे उपहार और प्रशंसा के साथ स्नान किया क्योंकि मैंने कंपनी को हजारों लोगों को बचाया होगा।


2
सवाल का जवाब देते हुए मजाकिया होने के लिए +1।
Ernie

2

मैं कहता हूं दोनों करो।

अभी आपका 40% पर है या सीपीयू आपने कहा है? क्या आप उपयोगकर्ता की शिकायत (बहुत) अभी तक कर रहे हैं? यदि आपके पास अभी भी सांस लेने का कमरा नहीं है। अधिक मेमोरी कुछ समय के लिए ऐसा करने के लिए पर्याप्त हो सकती है।

जाने के तरीके के लिए प्रश्न, क्या आपके पास घर सॉफ्टवेयर डेवलपर्स में हैं? अगर जवाब नहीं है, तो इसे फिर से करने का प्रयास न करें। अब आप जहां हैं, ठीक उसी स्थान पर समाप्त करेंगे।

आपको लगता है कि घर के डेवलपर्स में है, क्या आपके घर के डेवलपर्स में एक परियोजना को ठीक से करने की क्षमता है? मैं कल्पना कर रहा हूं कि यह पूरी तरह से, ठीक से (रिलेस्टिक) समयरेखा है, मूल रूप से समान है जैसे कि यह ग्राहक की परियोजना थी। यदि नहीं, तो परेशान मत करो या यह वापस खत्म हो जाएगा जहाँ आप अभी हैं।

जब तक कंपनियां भरोसा करती हैं कि वे भी स्वयं के ग्राहक हैं, और आंतरिक परियोजनाओं को समान रूप देने की आवश्यकता है, तो आप ठीक उसी स्थान पर समाप्त हो जाएंगे जहां अब आप हैं। वहाँ किया गया था, कि टी शर्ट के एक पूरे ड्रेसर मिला है।

तो अगर आप इसे ठीक से नहीं कर सकते हैं तो आप दो विकल्प हैं बॉक्स टर्न कुंजी से बाहर हैं, जो आप स्टाफ से नफरत करेंगे क्योंकि वे अब आपके द्वारा खरीदे गए सिस्टम के ढालना को फिट करने के लिए हैं। या यह कस्टमाइज़ करने योग्य होगा और आपको अभी भी इसे कस्टमाइज़ करने के लिए प्रॉजेक्ट समय बिताना होगा।

या आपके पास क्या है रिफ्लेक्टर। याद रखें कि नया आने पर लोग सभी समान कार्य पूर्णता की उम्मीद करेंगे, इसलिए यही कारण है कि किसी भी अन्य तरीके से आपको एक ही बार में सब कुछ करना होगा। यदि आप इसे फिर से कारक करते हैं, तो आपके पास यह पता लगाने का एक मौका है कि यह कैसे काम करता है और फिर इसके बजाय तदर्थ परिवर्तन आप इसे कई छोटे उप परियोजनाओं में शामिल करते हैं।

सिस्टम को देखे बिना, मैं संभवतः बैक-एंड में जितना हो सके सामान्य करने के बारे में देखूंगा, एसक्यूएल के ज्यादा से ज्यादा स्टिक प्रोक्स में ले जाऊंगा। फिर C # फॉर्म या वेबएप से एक नया फ्रंट एंड बनाएं। यदि आप अपने व्यावसायिक तर्क और SQL को सामने के छोर से निकाल सकते हैं, तो बाद में इसे फिर से करना आसान होगा। आप छोटी परियोजनाओं को क्या करते हैं, इसे ध्यान में रखते हुए, यदि यह किसी भी समय एक तरफ धकेल दिया जाता है या रुक जाता है, तो आपने प्रगति कर ली है जिसका उपयोग किया जाएगा।


2

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

"इसे ठीक करें या इसे खोदें" के विषय पर, यदि सिस्टम की विशेषताएं मूल रूप से आपके लिए काम करती हैं और आपको क्या चाहिए, पहिया को फिर से लिखना नहीं है। यदि आपके उपयोगकर्ता इस चीज़ का उपयोग करने के लिए जिमनास्टिक कर रहे हैं क्योंकि यह आपकी आवश्यकताओं के अनुरूप नहीं है, तो इसके लिए कोई प्रयास नहीं करना चाहिए।


2

खैर ... अब से कुछ समय पहले की बात है, लेकिन मुझे लगा कि मैं यहाँ परिणाम दर्ज करूँगा।

अंत में, मैं एक और समस्या से निपटने के लिए लाइन द्वारा VBA लाइन के माध्यम से कदम रखा। यह तब था जब मैंने महसूस किया कि पंक्तियों को लाने के लिए कुछ कॉल 20-30 सेकंड के लिए अवरुद्ध थे।

जब मैंने उन्हें खोदा, तो मैंने पाया कि पंक्तियाँ एक एमएस एक्सेस क्वेरी पर आधारित थीं।

वह किसी अन्य एक्सेस क्वेरी से डेटा का चयन कर रहा था।

यह अभी तक एक और एक्सेस क्वेरी से डेटा का चयन कर रहा था।

जिनमें से सभी को लग रहा था कि उन्हें क्वेरी डिज़ाइनर का उपयोग करके घसीटा गया है और एक साथ गिरा दिया गया है।

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

इसलिए मैंने जंजीर प्रश्नों के ढेर को पूरी तरह से हटा दिया, और उनमें से प्रत्येक को एकल पास-थ्रू क्वेरी के साथ बदल दिया, जिसे टी-एसक्यूएल में लिखा जा सकता है और सर्वर पर सीधे निष्पादित किया जा सकता है।

सुधार हर मामले में बिना किसी असफलता के बहुत बड़ा था और किसी के लिए प्रश्नों का अधिक इंतजार नहीं था।

और फिर मैंने कंपनी छोड़ दी। पता नहीं यह अभी भी वहाँ है ... लेकिन मुझे यह याद नहीं है।


निहित प्रश्नों के साथ कुछ भी गलत नहीं है। और, वास्तव में, क्या वास्तव में मायने रखता है जो कि एक्सेस में स्रोत QueryDefs में नहीं है, लेकिन जेट / एसीई सर्वर पर भेजने से क्या समाप्त होता है, जिसे आप SQL Profiler का उपयोग करके पता लगा सकते हैं। हां, एक्सेस में बुरे प्रश्नों को लिखना संभव है जो अक्षम और धीमी चीजें नीचे हैं, लेकिन यह हर डेटाबेस में संभव है!
डेविड डब्ल्यू फेंटन

1

मैं डेटन के जवाब में सिर्फ अपील करने के बजाय एक अलग उत्तर पोस्ट कर रहा हूं क्योंकि एक लागत है जिसे पहले कुछ लोगों द्वारा जवाब पोस्ट करने के लिए ध्यान में नहीं रखा जा रहा है: उपयोगकर्ताओं को फिर से शिक्षित करने की लागत और फिट होने के लिए आपकी व्यावसायिक प्रक्रियाओं को बदलने की लागत। एक नया सॉफ्टवेयर प्रोग्राम। नहीं तो उसने क्या कहा।

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

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

(इसके अलावा, मैं जहाँ तक संभव हो सर्वर संस्करण को अपग्रेड करूँगा - जब तक आप इसे जगह पर नहीं लाएँगे, Access 2000 और SQL Server 2000 दस वर्ष के हो जाएंगे। कंप्यूटर के वर्षों में OLD है!)


1

इसके लिए कुल री-स्ट्रक्चरिंग (री-आर्किटेक्चरिंग) की जरूरत है। जमीन से सिस्टम को फिर से बनाएं। यह आपको लंबे समय तक (रखरखाव में ओवरहेड लागत) में बहुत बचत करेगा। मतलब समय के लिए, उस पर चक हार्डवेयर। मुझे लगता है कि यह प्रश्न एक तकनीकी जांच की तुलना में "व्यवसाय का मामला" अधिक है। तकनीकी-वार, इसका उत्तर एक सटीक "इस पर अधिक शक्ति चक" है। व्यापार-वार, एक नई प्रणाली बनाएँ!


1

तकनीकी उत्तर:

आपको प्राथमिक कुंजी बताते हुए सुझावों का एक सुन्न मिला है और अनुक्रमण को पूरी तरह से समीक्षा की जानी चाहिए। एक्सेस वास्तव में प्रत्येक टेबल पर SQL सर्वर टाइमस्टैम्प उर्फ ​​रोवोरसन कॉलम का उपयोग करना पसंद करता है क्योंकि यह बहुत समय कम कर देता है कि रिकॉर्ड को अपडेट करने की बात आने पर रिकॉर्ड बदल दिया गया है, तो एक्सेस यह तय करता है।

व्यावसायिक उत्तर:

एक नया सीआरएम समाधान लोगों को प्रशिक्षित करने में बहुत काम आता है और आप कभी भी ऐसी प्रणाली के साथ समाप्त नहीं होंगे जो आपकी व्यावसायिक आवश्यकताओं के अनुरूप हो।

मुझे एक अच्छा एक्सेस पर्सन मिलेगा जो कि SQL सर्वर पर बहुत जानकार है और उन्हें टेबल को सामान्य करने और उपयोगकर्ता के दर्द बिंदुओं को ठीक करने में 3 या 6 महीने खर्च करने के लिए मिलता है। सुनिश्चित करें कि व्यक्ति आपके उपयोगकर्ताओं के रूप में सैम मंजिलों पर काम करता है, हालांकि एक शांत जगह में, और सुलभ है। हालांकि बहुत सुलभ नहीं है। डेवलपर्स को रुकावट पसंद नहीं है। एस


उसने क्या कहा - हिरन के लिए सबसे धमाकेदार, मेरी राय में, पहले अनुक्रमित को जोड़ने में है, फिर उस पर हार्डवेयर फेंकना है, और फिर ऐप का विश्लेषण करने के लिए बाहर से एक विशेषज्ञ-स्तरीय एक्सेस डेवलपर प्राप्त करना है और यह पता लगाना है कि क्या अड़चनें हैं। कर रहे हैं। यह बहुत अच्छी तरह से कुछ बहुत सरल हो सकता है, लेकिन मेरी शर्त यह है कि आप हाई-एंड सर्वर हार्डवेयर की लागत (या उससे कम) के बारे में एक्सेस गुरु द्वारा किया गया काम प्राप्त कर सकते हैं।
डेविड डब्ल्यू फेंटन

0

दी गई जानकारी के आधार पर, मैं सिस्टम को बदल दूंगा। अधिमानतः एक अन्य सीआरएम के साथ जो अन्य प्रणालियों के साथ लचीले एकीकरण की अनुमति देता है (जो आपके ईआरपी आईएस से समझौता करेगा )।

पेचीदा हिस्सा प्रबंधन और उपयोगकर्ताओं को समझाने के लिए एक उन्नयन की आवश्यकता होगी।

प्रबंध

तकनीकी मुद्दों, कम प्रदर्शन, बीजान्टिन विफलताओं के डर आदि पर अपनी चिंताओं को व्यक्त करें, फिर 2 वैकल्पिक CRM प्रस्तुत करें। व्यावसायिक एकीकरण, व्यवसाय के लिए समग्र ईआरपी रणनीति, और सबसे महत्वपूर्ण बात यह है कि यह कर्मचारियों को अधिक उत्पादक और लाभदायक कैसे बनाएगा। केस स्टडी का उपयोग करें। इसे 15 मिनट से अधिक समय तक न करें (जब तक कि वे अधिक जानकारी नहीं चाहते हैं)। तब आपको उपयोगकर्ताओं को समझाने की आवश्यकता होगी।

उपयोगकर्ता

प्रशिक्षण योजनाएं (जो एक विक्रेता आपूर्ति कर सकता है [और प्रबंधन को समर्थन देने की आवश्यकता होगी]), अपने उपयोगकर्ताओं के शीर्ष 20% (बिजली उपयोगकर्ताओं, जो परेशानी का कारण है) को जारी रखा, और सिस्टम को 100% चालू रखने के लिए एक ठोस प्रतिबद्धता पहले महीने के लिए (पहला महीना किसी भी नए IS को बनाएगा या तोड़ देगा)।

वहाँ बहुत सारे CRM उत्पाद हैं, जो आपके व्यवसाय की ज़रूरतों के लिए सबसे अच्छा है।


0

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


0

लंबे समय में आप डेटाबेस को फिर से तैयार करना सबसे अच्छा होगा। इस पर अधिक हार्डवेयर फेंकने से आपकी समस्या थोड़ी देर के लिए हल हो जाएगी, लेकिन यदि आप इसका उपयोग करना जारी रखते हैं तो आप थोड़े समय के बाद इस पर अधिक हार्डवेयर फेंकने वाले हैं।

आमतौर पर जब प्रदर्शन समस्याएँ होती हैं, तो आप हार्ड डिस्क / RAID पर i / o अड़चन जैसी चीज़ों को देखते हैं, डेटाबेस को शार्प करते हैं, आदि ... लेकिन उन चीज़ों के लिए जैसे आपको डेटाबेस का उपयोग करना चाहिए ताकि इसका लाभ उठाने के लिए डेटाबेस को ठीक से डिज़ाइन किया जा सके। इसकी ध्वनियों से आपका एप्लिकेशन कभी भी स्केल नहीं हो सकता है।

लंबे समय में डेटाबेस को रिड्यूस करने और आपके वर्तमान व्यावसायिक जरूरतों को बेहतर ढंग से प्रतिबिंबित करने के लिए फ्रंट एंड सॉफ्टवेयर आपको लंबे समय में बेहतर सेवा प्रदान करेगा। आपके उपयोगकर्ता आपको धन्यवाद देंगे, आपका हार्डवेयर लंबे समय तक चलेगा, और यह लंबे समय तक मुद्दे पर गज़ब के हार्डवेयर फेंकने की तुलना में बहुत अधिक धन बचाएगा।


0

आपके वर्णन को देखते हुए, पूरी तरह से नए bespoke सिस्टम का निर्माण व्यर्थ है - आप वहीं समाप्त करने जा रहे हैं, जहाँ आपने शुरुआत की थी, या शायद अब आप जितना भी खराब हैं। इसलिए जब तक आप किसी को थर्ड-पार्टी सॉल्यूशन खरीदने के लिए मना नहीं कर सकते, आपका सबसे अच्छा शर्त यह है कि आप जितना हो सके, रिफ्लेक्टर करें और उस पर हार्डवेयर फेंकें।

मैं कहूंगा कि आपको दो चीजें करनी चाहिए: 1) SQL सर्वर पर प्रदर्शन विश्लेषण। आपको लग रहा है कि लैग्स के स्रोत के रूप में सर्वर साइड की पहचान की गई है, इसलिए अब आपको यह जानना होगा कि कौन से प्रश्न लैगिंग हैं और क्यों। सभी संभावना में, आप अनुकूलन करने के लिए कुछ हॉट-स्पॉट क्वेरी पा सकते हैं जो आपको बड़ा लाभ देगा। हेक, यदि आपको हर कुछ सेकंड में अपडेट करने वाले क्लाइंट मिले हैं, तो देखें कि क्या आप उनकी अपडेट दर को बंद कर सकते हैं (क्या स्क्रीन पर सूची वास्तव में हर 5 सेकंड में अपडेट करने की आवश्यकता है? क्या 30 ठीक होगा? यदि नहीं, तो लगभग 15 कैसे? )। यदि आप इसके साथ भाग सकते हैं, तो बढ़ती ताज़ी लकड़ी की तरह डंबल सामान आपको ओवरहेड से बचा सकता है।

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


0

आपने रैम और प्रोसेसर का उल्लेख किया है, लेकिन डिस्क नहीं। मैं मानता हूं कि एमएस के एसक्यूएल सर्वर से निपटने के बाद मुझे लगभग एक दशक हो गया है, लेकिन यह डिस्क के लिए किसी भी अन्य डेटाबेस जितना ही है, अगर यह सब कुछ स्मृति में फिट नहीं हो सकता है।

मैं संभवत: पहले मशीन को उतनी रैम से भरने की कोशिश करूंगा जितना वह ले सकता है - फिर मैं यह सुनिश्चित करूंगा कि लॉग उन डिस्क पर लिखे जा रहे हैं जिनका उपयोग टेबल या इंडेक्स के लिए नहीं किया जा रहा है। फिर मैं यह सुनिश्चित करने की कोशिश करूंगा कि कोई तालिका एक ही धुरी पर उनके अनुक्रमित न हो।

उसके बाद, मैं डेटाबेस स्तर ट्यूनिंग के बारे में चिंता करूँगा, लेकिन इसके साथ, आपको अपने परीक्षणों और एक अनुकूलन लक्ष्य को परिभाषित करने की आवश्यकता होगी ताकि आप चीजों को तोड़ें या प्रश्नों को बदतर न करें। यद्यपि आपने कहा था कि प्राथमिक कुंजियाँ आपके परीक्षण डेटाबेस में बहुत अधिक लाभ नहीं दिखाती हैं, आपको अपनी परीक्षण पद्धति पर गौर करना चाहिए - प्राथमिक कुंजियाँ कुछ डेटाबेस को अनुमति दे सकती हैं (यह सुनिश्चित नहीं है कि एमएस SQL ​​रिकॉर्ड स्तर लॉकिंग का उपयोग करने के लिए 'एम' में से एक है) टेबल स्तर के ताले के बजाय, वह विवाद कम कर सकता है जो केवल कुछ उपयोगकर्ताओं के साथ परीक्षण में नहीं दिखाया जा सकता है।


0

सबसे पहले, मैं काइल हॉजसन से सहमत हूं और पीके जोड़ूंगा। यह सस्ता है (केवल समय पर) और आप अपने प्रश्नों पर एक बढ़ावा देख सकते हैं। अपने शीर्ष 10 सबसे बदसूरत प्रश्नों में शामिल होने वाले स्तंभों पर अनुक्रमणिका के बारे में क्या? टेबल स्कैन कहां हैं?

दूसरा, डेटाबेस में डेटा को ट्रिम करने के बारे में क्या? क्या वास्तव में जरूरत से ज्यादा पंक्तियों को प्रश्नों में लौटाया जा रहा है? मैं काइल के राम के सुझाव (दो और जीबी) से भी सहमत हूं।

भविष्य को मैप करने के दौरान अंतरिम के लिए आप जो प्रस्ताव रखते हैं, उस पर अपने लेखन (जोसेफ कर्र्न) में यह सब रखें। प्रबंधन और उपयोगकर्ताओं से पूछें कि क्या होता है यदि संगठन वर्तमान सीआरएम ऐप को क्रेट करता है और लाभ नहीं होता है। शायद इससे उन्हें भविष्य के बारे में सोचने में मदद मिलेगी।


0

हार्डवेयर प्राप्त करें!

न केवल टिन बहुत सस्ता है अगर आप एक Xeon 55xx श्रृंखला चिप के लिए जाते हैं तो यह उस चीज के लिए चिल्लाएगा जिसे आप इसे फेंक सकते हैं।

यह सिर्फ एक जोखिम / इनाम की बात है - आप पैसा खर्च कर सकते हैं और डीबी को बेहतर बनाने या वहाँ जल्दी और सस्ता खरीदने के लिए बहुत समय लगा सकते हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.