VPN ద్వారా పెద్ద SQL ఫలితం: వరుసలు ఎక్కడ వేచి ఉంటాయి
పెద్ద SQL ఫలితం మూడు చోట్ల వేచి ఉంటుంది: సర్వర్ బఫర్లు, VPN మార్గం మరియు క్లయింట్. బ్యాండ్విడ్త్ మార్చే లేదా కుదింపును ఆన్ చేసే ముందు ప్రతి దశను కొలవండి.
క్వెరీలు మిల్లీసెకన్లలో పూర్తి కావచ్చు మరియు అయినా 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';
పరిమిత పనిభారం నడుస్తున్నప్పుడు కౌంటర్ చదవండి, నిష్క్రియ గంట తర్వాత కాదు, ఎందుకంటే సంచిత కౌంటర్లు ఇన్స్టాన్స్ ప్రారంభమైనప్పటి నుండి ప్రతి సెషన్ను కలుపుతాయి. జీవితకాల మొత్తం కాకుండా అమలు అంతటా డెల్టాను పోల్చండి. బదిలీ సమయంలో పెరుగుతున్న డెల్టా ప్రశ్నను వినియోగం లేదా డెలివరీకి సంకోచిస్తుంది.
రెండు క్లయింట్లను ఒకే గడియారంపై ఉంచండి
డేటాబేస్కు దగ్గరగా ఉన్న క్లయింట్ నుండి మరియు దూరపు క్లయింట్ నుండి పరిమిత పనిభారాన్ని అమలు చేయండి. క్వెరీ, పారామితులు, ఫలిత పరిమాణం మరియు కనెక్షన్ సెట్టింగ్లను ఒకేలా ఉంచండి. రెండు వైపులా ఒకే కొలతను ఉపయోగించండి, ఎందుకంటే సర్వర్ అమలు సమయం, గ్రిడ్ ప్రదర్శన సమయం మరియు ఎగుమతి సమయం మూడు వేర్వేరు గడియారాలు. సర్వర్-వైపు సంఖ్యను క్లయింట్-వైపు ఎగుమతి టైమర్తో పోల్చడం పరీక్షించలేని ముగింపును ఇస్తుంది.
మార్గం బాధ్యతాయుతంగా కనిపించినప్పుడు, బదిలీ నడుస్తున్నప్పుడు ఆ నిర్దిష్ట ప్రవాహానికి నష్టం, పునఃప్రసారం మరియు సాధించిన నిర్గమాంశను గమనించమని నెట్వర్క్ యజమానిని అడగండి. సాధారణ వేగ పరీక్ష మరో మార్గం, ఎండ్పాయింట్ లేదా సమాంతరత నమూనాను ఉపయోగించవచ్చు. చిన్న విజయవంతమైన అభ్యర్థన నిరంతర ఫలిత బదిలీ గురించి తక్కువ చెబుతుంది.
మార్గాన్ని నిందించే ముందు బైట్లను తగ్గించండి
ఫిల్టరింగ్, సమగ్రీకరణ మరియు అవసరమైన నిలువు వరుసలను మాత్రమే ఎంచుకోవడం బదిలీ పరిమాణాన్ని మరియు ప్రతి వరుసతో క్లయింట్ చేసే పనిని తగ్గిస్తాయి. ఉద్దేశించిన ఫలితాన్ని కాపాడండి, ఎందుకంటే నివేదికకు స్క్రీన్ సారాంశంలో లేని వివరాలు అవసరం కావచ్చు.
పునరావృత ఎగుమతుల కోసం, డేటాబేస్కు దగ్గరగా ఉన్న ఆమోదించబడిన అమలు స్థానం నిర్వచించిన అవుట్పుట్ను రాసి తర్వాత ఒకసారి అందించవచ్చు. ఇది పని ప్రవాహాన్ని మరియు దాని యాక్సెస్ నియంత్రణలను మారుస్తుంది, మరియు పంచుకున్న హోస్ట్పై అపరిమిత డంప్ వదిలే అనుమతి కాదు.
కుదింపు డిఫాల్ట్ పరిష్కారం కాదు. మద్దతు మరియు భద్రత వాస్తవ ప్రోటోకాల్ మరియు అమలుపై ఆధారపడి ఉంటాయి, మరియు క్లయింట్ నెమ్మదిగా తెరిచే కుదించిన స్ట్రీమ్ అనుభవాన్ని మరింత దెబ్బతీయవచ్చు. మొదట దశను కొలవండి, తర్వాత ఆ దశకు మద్దతు ఉన్న మార్పును ఎంచుకోండి.