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

तीन चरण, एक स्टॉपवॉच

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

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

नेटवर्क से पहले प्रतीक्षा पढ़ें

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

धीमा VPN योगदान कर सकता है, पर ऐसा क्लाइंट भी जो हर पंक्ति को प्रारूपित करता है, फ़ाइल में लिखता है या बैचों के बीच रुकता है। प्रतीक्षा का नाम अगले मापन की ओर संकेत है, लिंक पर फैसला नहीं।

SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats
WHERE wait_type = 'ASYNC_NETWORK_IO';

सीमित वर्कलोड चलते समय काउंटर पढ़ें, खाली घंटे के बाद नहीं, क्योंकि संचयी काउंटर इंस्टेंस शुरू होने के बाद से हर सत्र को मिला देते हैं। जीवनकाल के कुल के बजाय रन के दौरान डेल्टा की तुलना करें। स्थानांतरण के दौरान बढ़ता डेल्टा प्रश्न को खपत या डिलीवरी तक सीमित करता है।

दोनों क्लाइंट को एक ही घड़ी पर रखें

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

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

पथ को दोष देने से पहले बाइट घटाएँ

फ़िल्टरिंग, एकत्रीकरण और केवल आवश्यक स्तंभों का चयन स्थानांतरण की मात्रा और हर पंक्ति के साथ क्लाइंट के काम, दोनों को घटाता है। इच्छित परिणाम सुरक्षित रखें, क्योंकि रिपोर्ट को ऐसा विवरण चाहिए हो सकता है जो स्क्रीन पर सारांश में नहीं है।

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

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

संबंधित लेख