Eyðublað sem birtist á innan við sekúndu á staðarneti tekur fimm sekúndur yfir VPN, á meðan afritun skráar á sama tengingu gengur á fullum hraða. Munurinn er ekki bandbreidd. Eyðublaðið bíður eftir röð svara og borgar fulla ferð fram og til baka á hverju skrefi, á meðan afritunin heldur bætum stöðugt á ferðinni. Teldu þessar biðir áður en þú snertir aðgangslínuna.

Einkennið er skjár, ekki fyrirspurn

Sérhver fyrirspurn á þeim skjá getur verið hröð og skjárinn getur samt verið hægur, því heildin er summa biðtíma en ekki summa keyrslutíma. Setning sem keyrir á tveimur millisekúndum kostar samt fulla ferð fram og til baka þegar biðlarinn verður að fá niðurstöðuna áður en hann sendir þá næstu. Á slóð með fjörutíu millisekúndna seinkun safnast hundrað háð símtöl í um fjórar sekúndur áður en nokkur teiknivinna hefst. Þessi reikningur er líkan af biðinni, ekki mæling á tengingunni þinni.

Þess vegna virðist hraðapróf saklaust. Magnflutningur mælir gegnumstreymi, spjallandi eyðublað mælir seinkun, og VPN getur verið frábært í öðru en venjulegt í hinu. Því þýðir greining skjásins að mæla skjáinn en ekki tenginguna.

Skráðu tímann frá upphafi til enda fyrir eina notendaaðgerð áður en þú breytir nokkru. Sú tala er eina grunnlínan sem getur sagt þér hvort síðari lagfæring virkaði.

Teldu biðtíma í röð í einni notendaaðgerð

Mældu í biðlinum í stað þess að giska. Í psql prentar \timing on liðinn tíma hverrar setningar, og EXPLAIN (ANALYZE, BUFFERS) sýnir hversu mikinn hluta þess tíma miðlarinn eyddi í raun í vinnuna.

Bilið milli þessara tveggja talna er net- og biðlarakostnaðurinn þinn. Ef setning keyrir á tveimur millisekúndum og biðlarinn skráir sextíu, eru þær fimmtíu og átta sem eftir eru ferðalag og staðvinnsla, og enginn vísir fjarlægir þær. Endurtaktu þennan samanburð fyrir hverja setningu sem skjárinn sendir og leggðu saman bilið en ekki keyrslutímana.

Skráðu niðurstöðuna sem fjölda biðtíma í röð. Það er stærðin sem næstu tveir kaflar geta minnkað, og það er tala sem þú getur rökstutt með sönnunum.

Pakkaðu óháðu símtölunum saman, haltu þeim háðu

Tvær setningar sem lesa ekki niðurstöður hvor annarrar geta ferðast saman og verið sóttar einu sinni, sem gerir tvær biðir að einni. Tvær setningar þar sem sú seinni þarf gildið úr þeirri fyrri geta það ekki, því háðin er raunveruleg og pökkun myndi breyta því sem forritið gerir. Flokkaðu símtölin í þessa tvo hrúga áður en þú endurskrifar nokkuð, og stærð hvers hrúgs segir þér hvað er mögulegt.

Vinna sem byggir á mengjum fjarlægir biðir ítarlegar en pökkun. Ein fyrirspurn sem skilar röðunum sem lykkja sótti eina í einu eyðir bæði lykkjunni og ferðunum. Leitaðu fyrst að lykkjunni, því hún er venjulega meiri ávinningur og auðveldari breyting í yfirferð.

Pökkun verður samt að varðveita villumeðferð og mörk færslna. Að tengja óskyldar setningar í einn streng er ekki örugg hagræðing, og pökkun sem felur misheppnaða setningu bak við vel heppnaða sendingu er verri en biðirnar sem hún sparaði.

Endurnýttu tengingar áður en þú kaupir bandbreidd

Ný tenging kostar nafnaleysingu, TCP-handaband, TLS-samning og auðkenningu, og á slóð með mikilli seinkun er hvert þeirra önnur ferð fram og til baka áður en fyrsta fyrirspurnin keyrir. Tenglasöfn eru til að borga þann kostnað einu sinni fyrir hvert ferli en ekki einu sinni fyrir hvert símtal.

Í ADO.NET skilar lokun eða losun safntengingar henni til endurnotkunar í stað þess að opna nýja líkamlega tengingu, svo mynstrið sem lítur út eins og leki er oft rétta notkunin. Staðfestu að safnið sé raunverulega notað í stað þess að gera ráð fyrir því: skráðu tilurð líkamlegra tenginga eða fylgstu með fjölda setna á miðlaranum meðan skjárinn keyrir. SQL-frammistuðleiðbeiningarnar segja það sama um að fækka ferðum og pakka tíðum ad hoc símtölum saman, með dæmum sem eru sérstök fyrir þjónustuna og þú ættir að kortleggja á þína eigin uppsetningu.

Söfnun fjarlægir uppsetningarkostnað og lætur biðtíma fyrirspurna í röð ósnortna. Það er forsenda hreinnar mælingar en ekki lagfæring út af fyrir sig.

Metið að færa keyrsluna nær gögnunum

Að keyra forritið nálægt gagnagrunninum kemur í stað margra fjartengdra gagnagrunnsskipta með einni fjarskjásetu. Fyrir spjallandi vinnuálag getur það verið mikil breyting, og það er rekstrarleg breyting jafnmikið og afkastabreyting: setustjórnun, aðgangsstýring, hugbúnaðaruppsetning og notendaupplifun færast öll með forritinu.

Mældu raunverulega viðmótið og gögnin sem það flytur áður en þú gerir ráð fyrir að önnur áttin sé hraðari. Fjarskjáseta færir pixla, og skjár með þéttri grafík getur staðið sig verr á sömu slóð en fyrirspurnirnar sem hann kom í staðinn fyrir, sérstaklega þegar biðlarinn teiknar endalaust upp á nýtt.

Endurtaktu síðan upprunalegu aðgerðina og berðu saman þrjár tölur: biðtíma í röð, magn niðurstaðna og lokatíma frá upphafi til enda. Sú endurbót sem breytir mældu notendaverkefninu en varðveitir réttmæti gagna og aðgangsstefnu er sú sem er þess virði að halda.

Tengdir greinar