मेरे पास एक बहुत ही सरल है जो सचमुच पूरे डीबी सेट को पकड़ लेता है और इसे तार पर वापस कर देता है। विचाराधीन सेट इस समय लगभग 28k पंक्तियों का है।

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

डेटा कॉल और उसके सामने के छोर तक पहुंचने के बीच कुछ लंबा समय लग रहा है, और मुझे यकीन नहीं है कि इसे कैसे हल किया जाए।

कोड शाब्दिक है:

[HttpGet]
public IActionResult GetAllCustomers()
{
    return Ok(_context.Customers);
}

इसे डीबग करने के लिए मैं और क्या कर सकता हूं?

हमारा काम करने का समाधान डेटासेट को महत्वपूर्ण रूप से प्रतिबंधित करना है, इसके बजाय <1000 रिकॉर्ड लौटाना है, लेकिन व्यावसायिक प्राथमिकता सब कुछ है और फ्रंट-एंड टेबल को सॉर्ट और फ़िल्टर करना है।

एक लार्क पर, मैंने मॉडल से सभी संबंधित वस्तुओं को हटा दिया, और इसे तालिका में 10 या तो कॉलम तक नीचे ले गया, और इसमें अभी भी बहुत लंबा समय लगा।

-1
Marshall Tigerus 31 अक्टूबर 2018, 23:46

1 उत्तर

सबसे बढ़िया उत्तर

आपकी समस्या का ASP.NET या माइक्रोसर्विस आर्किटेक्चर से कोई लेना-देना नहीं है ...

यदि आपके पास डेटाबेस तालिका में 28,000 रिकॉर्ड हैं और HTTP पर सभी रिकॉर्ड का अनुरोध करते हैं तो यह धीमा होने वाला है।

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

समाधान आपके एपीआई और फ्रंटएंड पर पेजिंग को लागू करना है: यहां छवि विवरण दर्ज करें

आपने आवश्यकता का उल्लेख किया है: "लेकिन व्यावसायिक प्राथमिकता सब कुछ है और फ्रंट-एंड टेबल को सॉर्ट और फ़िल्टर करने दें।"

पेजिंग के संयोजन में छँटाई और फ़िल्टरिंग भी की जाती है: यहां छवि विवरण दर्ज करें

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

6
Brian Ogden 31 अक्टूबर 2018, 22:06