Päringud võivad valmida millisekunditega ja ikkagi kuluda minuteid, et jõuda VPN-i kaudu sülearvutisse. Server kirjutab read puhvritesse, ühendus transpordib need ja klient tarbib need, ning need etapid kattuvad, mitte ei jookse järjest. Ükskõik milline neist võib saada piiriks. Leidke etapp, mis tegelikult ootab, enne kui muudate ribalaiust või lülitate sisse pakkimise.

Kolm etappi, üks stopper

Jagage taimer kaheks erineva tähendusega numbriks: hetk, mil esimene rida on saadaval, ja hetk, mil viimane rida on tarbitud. Ruudustik, mis joonistab esimese lehe, tõestab ainult seda, et päring algas. Täieliku tulemuse aeg on see, mida kasutaja kogeb eksportimisel või lõpuni kerimisel.

Kirjutage mõlemad numbrid üles koos päringu teksti, parameetrite ja ühenduse seadetega. Ilma selle kontekstita on võrdlus kahe erineva töö, mitte kahe asukoha vahel.

Lugege ootust enne võrku

SQL Server kirjutab tulemuse read väljundpuhvritesse, et klient need kätte saaks, ja aeglaselt tarbiv klient võib panna serveri sellel saatmisel ootama. Ootuse tüüp on ASYNC_NETWORK_IO ja Microsofti tõrkeotsingu märkus loetleb selle põhjuste hulgas suuri tulemusi ja kliendipoolset töötlemist. Ootus ütleb, et saatmise tee on blokeeritud, mitte miks.

Aeglane VPN võib kaasa aidata, aga ka klient, mis vormindab iga rida, kirjutab faili või teeb partiide vahel pause. Ootuse nimi on osuti järgmisele mõõtmisele, mitte hinnang ühendusele.

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

Lugege loendurit piiratud töökoormuse ajal, mitte pärast tühja tundi, sest kumulatiivsed loendurid segavad iga sessiooni alates eksemplari käivitamisest. Võrrelge erinevust jooksu jooksul, mitte kogu eluea summat. Ülekande ajal kasvav erinevus kitsendab küsimuse tarbimisele või kohaletoimetamisele.

Pange mõlemad kliendid samale kellale

Käivitage piiratud töökoormus andmebaasi lähedal asuvast kliendist ja kaugkliendist. Hoidke päring, parameetrid, tulemuse suurus ja ühenduse seaded identsed. Kasutage sama mõõtmist mõlemal pool, sest serveri täitmisaeg, ruudustiku kuvamisaeg ja ekspordiaeg on kolm erinevat kella. Serveripoolse numbri võrdlemine kliendipoolse eksporditaimeriga annab järelduse, mida ei saa testida.

Kui tee tundub vastutavat, laske võrguomanikul jälgida just selle voo kadusid, kordussaadetisi ja saavutatud läbilaskevõimet ülekande ajal. Üldine kiirustest võib kasutada teist marsruuti, lõpp-punkti või paralleelsuse mustrit. Väike edukas päring ütleb vähe pikaajalise tulemuse ülekande kohta.

Kärpige baite enne tee süüdistamist

Filtreerimine, agregeerimine ja ainult vajalike veergude valimine vähendavad nii ülekandemahu kui ka tööd, mida klient iga reaga teeb. Säilitage kavandatud tulemus, sest aruanne võib vajada üksikasju, mida ekraanil olev kokkuvõte ei anna.

Korduvate ekspordi puhul saab andmebaasi lähedal asuv heakskiidetud täitmiskoht kirjutada määratletud väljundi, mis seejärel tarnitakse üks kord. See muudab töövoogu ja selle juurdepääsukontrolle ning see ei ole luba jätta piiramatut dumpi jagatud hosti.

Pakkimine ei ole vaikimisi parandus. Tugi ja turvalisus sõltuvad tegelikust protokollist ja juurutusest ning pakitud voog, mille klient aeglaselt lahti pakib, võib kogemust halvendada. Mõõtke esmalt etappi ja valige seejärel selle etapi jaoks toetatud muudatus.

Seotud artiklid