आपने इस प्रतीक्षा प्रकार को पहले देखा है, है ना? खैर, यह निश्चित रूप से एक प्रतीक्षा प्रकार है जिसने बहुत भ्रम पैदा किया है। तत्काल ध्यान आम तौर पर "नेटवर्क" शब्द पर दिया जाता है, लेकिन कई बार इसका नेटवर्क से कोई लेना-देना नहीं होता है!
ASYNC_NETWORK_IO प्रतीक्षा प्रकार आम तौर पर दो प्रकार के लक्षण देगा, पहला सत्र कार्यभार संबंधित क्लाइंट एप्लिकेशन द्वारा डेटा के दिए गए सेट को स्वीकार/संसाधित करने की प्रतीक्षा कर रहा है और SQL सर्वर को यह बताने दें कि यह अधिक डेटा को संसाधित/स्वीकार करने के लिए तैयार है। दूसरा लक्षण यह है कि एप्लिकेशन और डेटाबेस इंस्टेंस के बीच नेटवर्क में एक प्रदर्शन समस्या हो सकती है। दृश्यों के पीछे, SQL सर्वर डेटा को आउटपुट बफर में तब तक रखता है जब तक कि क्लाइंट से एक पावती प्राप्त न हो जाए कि डेटा की खपत है या नहीं पूर्ण। ASYNC_NETWORK_IO एक स्पष्ट संकेत है कि एप्लिकेशन को अपने बैकएंड डेटाबेस से आवश्यक डेटा पढ़ने में दक्षता की कमी है। अंतर्निहित नेटवर्क में ऐसे मुद्दे भी हो सकते हैं जो डेटा संसाधित होने के दौरान लंबा इंतजार कर सकते हैं, और सिग्नल क्लाइंट से सर्वर पर वापस भेजे जा रहे हैं।
इस प्रतीक्षा के संभावित कारणों में शामिल हैं:
- एप्लिकेशन कोड सही ढंग से डेटा पुनर्प्राप्त नहीं कर रहा है
- क्लाइंट द्वारा बड़े डेटा सेट का अनुरोध किया जा रहा है
- क्लाइंट या एप्लिकेशन पक्ष पर होने वाले डेटा की अत्यधिक फ़िल्टरिंग
- खराब तरीके से कॉन्फ़िगर किए गए नेटवर्क डिवाइस जैसे कार्ड, स्विच आदि।
उच्च स्तर पर, एक डीबीए इन चीजों की जांच कर सकता है:
- एप्लिकेशन कोड की समीक्षा करें और सुनिश्चित करें कि एप्लिकेशन डेटा को सही/कुशलता से पढ़ रहा है। उदाहरण के लिए, क्या आपका एप्लिकेशन एक समय में केवल एक पंक्ति को संसाधित करने के लिए बड़ी संख्या में पंक्तियों को वापस खींच रहा है?
- क्लाइंट/एप्लिकेशन पक्ष में अनावश्यक डेटा-फ़िल्टरिंग? पंक्तियों को सीमित करें।
यदि उपरोक्त आइटम चेक आउट हो जाते हैं, लेकिन ASYNC_NETWORK_IO के साथ समस्याएं बनी रहती हैं, तो यह नेटवर्क के कारण हो सकता है। यहां कुछ चीजें दी गई हैं जिन पर आप गौर कर सकते हैं:
- एप्लिकेशन और बैकएंड डेटाबेस इंस्टेंस के बीच नेटवर्क संचार लिंक का निरीक्षण करें और बैंडविड्थ सत्यापित करें।
- लोड या दूरी के कारण सामान्य विलंबता के लिए नेटवर्क का परीक्षण करने के लिए sys.dm_io_virtual_file_stats का उपयोग करें
- डेटाबेस सर्वर पर एनआईसी कॉन्फ़िगरेशन की जांच करें ताकि यह सुनिश्चित हो सके कि कोई दोष और/या सेटिंग्स गायब नहीं हैं।
ASYNC_NETWORK_IO WAIT TYPE वास्तव में नेटवर्क से संबंधित समस्या हो सकती है, लेकिन अक्सर यह क्लाइंट एप्लिकेशन के कारण हो सकता है जो अपने डेटा को कुशलता से संसाधित नहीं कर रहा है। यदि बाद में वास्तव में ऐसा है, तो यह डीबीएएस और डेवलपर्स के लिए एक साथ काम करने का अवसर है ताकि यह समझ सकें कि बैक-एंड डेटाबेस के प्रदर्शन के सर्वोत्तम हित में एप्लिकेशन को वास्तव में क्या चाहिए। यह सुनिश्चित करना कि अधिकांश डेटा फ़िल्टरिंग SQL सर्वर के भीतर की जाती है, एक सर्वोत्तम अभ्यास है जिसे विचारों या अधिक विशिष्ट के माध्यम से प्राप्त किया जा सकता है जहां लेनदेन सिंटैक्स में स्थितियां होती हैं।
यद्यपि सूचीबद्ध DMVs और SQL सर्वर में विस्तारित ईवेंट्स के उपयोग के माध्यम से ASYNC_NETWORK_IO प्रतीक्षा को मॉनिटर करने और मापने के कई तरीके हैं, हम SQL सर्वर DBA के अपने समुदाय को क्वेस्ट के स्पॉटलाइट क्लाउड को देखने के लिए प्रोत्साहित करते हैं जो प्रतीक्षा प्रकार के मूल कारण को निर्धारित करने में दक्षता प्रदान करते हैं। एक ऐतिहासिक अवधि में खपत।