Жергиликтүү тармакта бир секунддан аз ачылган форма VPN аркылуу беш секунд алат, ал эми ошол эле линиядагы файл көчүрмө толук ылдамдыкта жүрөт. Айырма өткөрүү жөндөмүндө эмес. Форма жооптордун тизмесин күтүп, ар бир кадамда толук айланууну төлөйт, ал эми файл көчүрмө байттарды үзгүлтүксүз кармап турат. Жеткирүү линиясына тийүүдөн мурун ошол күтүүлөрдү санаңыз.

Симптом суроо эмес, экран

Ошол экрандагы ар бир суроо ылдам болушу мүмкүн, ал эми экран баары бир жай болуп калышы мүмкүн, анткени жалпы сумма аткаруу убакыттарынын суммасы эмес, күтүүлөрдүн суммасы. Эки миллисекундда аткарылган оператор, кардар кийинкисин жөнөтүүдөн мурун жыйынтыгын алышы керек болгондо, баары бир толук айланууну талап кылат. Кечигүүсү кырк миллисекунд жолдо жүз көз каранды чакырык кандайдыр бир рендеринг иши башталганга чейин болжол менен төрт секундга чогулат. Бул арифметика күтүүнүн модели, сиздин линияңыздын өлчөмү эмес.

Ошондуктан ылдамдык тести күнөөсүз көрүнөт. Жапырт өткөрүү өткөрүү жөндөмүн өлчөйт, сүйлөшкүч форма кечигүүнү өлчөйт, ал эми VPN биринде мыкты болуп, экинчисинде кадимки бойдон кала алат. Ошондуктан экранды диагностикалоо линияны эмес, экранды өлчөөнү билдирет.

Эч нерсени өзгөртүүдөн мурун бир колдонуучу аракетинин учунан учуна убактысын жазып алыңыз. Кийинки оңдоонун иштегенин айта ала турган жалгыз база ошол сан.

Бир колдонуучу аракетиндеги кезектеги күтүүлөрдү санаңыз

Божомолдоонун ордуна кардарды аспапташтырыңыз. psql ичинде \timing on ар бир оператордун өткөн убактысын басып чыгарат, ал EXPLAIN (ANALYZE, BUFFERS) сервер ошол убакыттын канчасын чынында жумушка жумшаганын көрсөтөт.

Ошол эки сандын айырмасы сиздин тармактык жана кардардык чыгымыңыз. Эгер оператор эки миллисекундда аткарылып, кардар алпыс жазып алса, калган элүү сегиз жол жүрүү жана жергиликтүү иштетүү, аларды эч кандай индекси жок кыла албайт. Бул салыштырууну экран жөнөткөн ар бир оператор үчүн кайталап, аткаруу убакыттарын эмес, айырмаларды кошуңуз.

Жыйынтыкты кезектеги күтүүлөрдүн саны катары жазып коюңуз. Кийинки эки бөлүм ушул чоңдукту азайта алат, жана бул далил менен талкуулоого боло турган сан.

Көз каранды эмес чакырыктарды топтоштуруңуз, көз карандыларын калтырыңыз

Бири-биринин жыйынтыгын окубаган эки оператор чогуу жүрүп, бир жолу чогултулушу мүмкүн, бул эки күтүүнү бир күтүүгө айландырат. Экинчиси биринчинин маанисин талап кылган эки оператор үчүн бул мүмкүн эмес, анткени көз карандылык чыныгы жана аны топтоштуруу программанын эмне кылаарын өзгөртөт. Эч нерсени кайра жазбастан мурун чакырыктарды ушул эки үймөккө бөлүңүз, ал эми ар бир үймөктүн көлөмү эмне мүмкүн экенин айтат.

Топтомго негизделген жумуш күтүүлөрдү топтоштуруудан толугураак жок кылат. Цикл бир-бирден алып жаткан саптарды кайтарган бир суроо циклды да, айланууларды да жок кылат. Эң оболу циклды издеңиз, анткени ал көбүнчө чоңураак утуш жана текшерүүгө оңой өзгөртүү.

Топтом баары бир каталарды иштетүүнү жана транзакция чек араларын сакташы керек. Байланышы жок операторлорду бир сапка бириктирүү коопсуз оптимизация эмес, ал эми ийгиликсиз операторду ийгиликтүү жөнөтүүнүн артына жашырган топтом үнөмдөгөн күтүүлөрүнөн да жаман.

Өткөрүү жөндөмүн сатып алардан мурун байланыштарды кайра колдонуңуз

Жаңы байланыш атты чечүүгө, TCP кол алышууга, TLS сүйлөшүүлөрүнө жана аутентификацияга турат, ал эми жогорку кечигүүсү бар жолдо алардын ар бири биринчи суроо иштегенге чейинки дагы бир айлануу. Байланыш пулдары бул чыгымды чакырык сайын эмес, процесс сайын бир жолу төлөө үчүн бар.

ADO.NET ичинде пулдагы байланышты жабуу же dispose кылуу жаңы физикалык байланыш ачуунун ордуна аны кайра колдонууга кайтарат, ошондуктан агып жаткандай көрүнгөн үлгү көбүнчө туура колдонуу болуп саналат. Пул чынында колдонулуп жатканын божомолдобой текшериңиз: физикалык байланыш түзүлүүсүн логго жазыңыз же экран иштеп жатканда сервердеги сессия санын көзөмөлдөңүз. SQL өндүрүмдүүлүк боюнча көрсөтмө айланууларды азайтуу жана тез-тез ad hoc чакырыктарды топтоштуруу тууралуу ушуну эле айтат, кызматка мүнөздүү мисалдар менен, аларды өзүңүздүн жайгаштырууңузга ылайыкташтырышыңыз керек.

Пулдоо орнотуу чыгымын жоёт жана кезектеги суроо күтүүлөрүн тийбестен калтырат. Ал өз алдынча оңдоо эмес, таза өлчөө үчүн шарт.

Аткарууну маалыматтарга жакындатууну таразага тартыңыз

Колдонмону маалымат базасынын жанында жүргүзүү көптөгөн алыскы маалымат базасы алмашууларын бир алыскы дисплей сессиясы менен алмаштырат. Сүйлөшкүч жүктөм үчүн бул чоң өзгөртүү болушу мүмкүн жана ал өндүрүмдүүлүк өзгөртүүсү гана эмес, операциялык өзгөртүү да: сессияны башкаруу, кирүүнү көзөмөлдөө, программалык камсыздоону жайгаштыруу жана колдонуучу тажрыйбасы колдонмо менен кошо жылышат.

Кайсы багыт ылдамыраак деп божомолдобой туруп, чыныгы интерфейсти жана анын өткөргөн маалыматтарын өлчөңүз. Алыскы жумуш үстөлү сессиясы пикселдерди жылдырат, ал эми тыгыз графикасы бар экран ошол эле жолдо ал алмаштырган суроолордон жаман иштеши мүмкүн, айрыкча кардар үзгүлтүксүз кайра тартканда.

Анан баштапкы аракетти кайталап, үч санды салыштырыңыз: кезектеги күтүүлөр, жыйынтыктын көлөмү жана учунан учуна аяктоо убактысы. Маалыматтардын тууралыгын жана кирүү саясатын сактап, өлчөнгөн колдонуучу тапшырмасын өзгөрткөн жакшыртуу сактоого татыктуу.

Тектеш макалалар