Яриасаг SQL апп VPN-ээр яагаад удаан ажилладаг ба юуг багцлах хэрэгтэй
Зуу гаруй хамааралтай асуулга илгээдэг дэлгэц тойрог замыг зуу дахин төлдөг. Хүлээлтүүдийг тоолж, хамааралгүйг багцлаад, дараа нь гүйцэтгэлийг зөө.
Орон нутгийн сүлжээнд нэг секундээс бага хугацаанд нээгддэг маягт VPN-ээр таван секунд зарцуулдаг бол тэр л шугам дээрх файлын хуулбар бүрэн хурдаар явдаг. Ялгаа нь зурвасын өргөнд биш. Маягт хариултуудын дарааллыг хүлээж, алхам бүрт бүтэн тойрог замыг төлдөг бол файлын хуулбар байтуудыг тасралтгүй нислэгт байлгадаг. Хандалтын шугамд хүрэхээс өмнө тэдгээр хүлээлтийг тоол.
Шинж тэмдэг нь асуулга биш, дэлгэц
Тэр дэлгэц дээрх асуулга бүр хурдан байж болох ч дэлгэц бүхэлдээ удаан хэвээр байж болно, учир нь нийлбэр нь гүйцэтгэлийн хугацааны нийлбэр биш, хүлээлтүүдийн нийлбэр юм. Хоёр миллисекундэд ажилладаг мэдэгдэл ч, дараагийнхийг илгээхийн өмнө үр дүнг хүлээж авах ёстой бол бүтэн тойрог зам шаарддаг. Дөч миллисекундын сааталтай зам дээр зуу хамааралтай дуудлага ямар ч зурах ажил эхлэхийн өмнө дөрвөн секунд орчимд хуримтлагддаг. Энэ арифметик нь хүлээлтийн загвар, таны шугамын хэмжүүр биш.
Тиймээс хурдны тест гэмгүй харагддаг. Бөөн дамжуулалт нь дамжуулах чадварыг хэмждэг, яриасаг маягт нь саатлыг хэмждэг бөгөөд VPN нь нэг талаар маш сайн байж, нөгөө талаар жирийн хэвээр байж болно. Тиймээс дэлгэцийг оношлох нь шугамыг биш, дэлгэцийг хэмжихыг хэлнэ.
Ямар нэг зүйлийг өөрчлөхөөс өмнө нэг хэрэглэгчийн үйлдлийн эхнээс төгсгөл хүртэлх хугацааг тэмдэглэ. Дараагийн засвар ажилласан эсэхийг хэлж чадах цорын ганц суурь нь тэр тоо юм.
Нэг хэрэглэгчийн үйлдэл дэх дараалсан хүлээлтийг тоол
Таамаглахын оронд клиентийг багажжуул. psql дотор \timing on мэдэгдэл бүрийн өнгөрсөн хугацааг хэвлэдэг бол EXPLAIN (ANALYZE, BUFFERS) тухайн хугацааны хэдийг сервер үнэхээр ажилд зарцуулсныг харуулна.
Тэр хоёр тооны зөрүү нь таны сүлжээ, клиентийн зардал юм. Хэрэв мэдэгдэл хоёр миллисекундэд ажиллаад клиент жар бүртгэвэл үлдсэн тавь найм нь аялал ба орон нутгийн боловсруулалт бөгөөд ямар ч индекс тэднийг арилгахгүй. Дэлгэцийн илгээдэг мэдэгдэл бүрд энэ харьцуулалтыг давтаж, гүйцэтгэлийн хугацааг биш зөрүүг нэм.
Үр дүнг дараалсан хүлээлтийн тоо болгон бичиж үлдээ. Дараагийн хоёр хэсэг яг энэ хэмжээг багасгаж чадна, мөн энэ нь нотолгоотойгоор маргаж болох тоо юм.
Хамааралгүй дуудлагыг багцлаж, хамааралтайг нь үлдээ
Бие биенийхээ үр дүнг уншдаггүй хоёр мэдэгдэл хамт явж, нэг удаа цуглуулагдаж болох бөгөөд энэ нь хоёр хүлээлтийг нэг болгоно. Хоёр дахь нь эхнийхээс утга шаарддаг хоёр мэдэгдэл үүнийг хийж чадахгүй, учир нь хамаарал нь бодит бөгөөд багцлах нь програмын хийдэг зүйлийг өөрчилнө. Ямар нэг зүйлийг дахин бичихийн өмнө дуудлагуудыг тэр хоёр овоолго болгон хуваа, овоолго бүрийн хэмжээ юу боломжтойг хэлнэ.
Олонлогт суурилсан ажил нь багцлахаас илүү нягт хүлээлтийг арилгадаг. Давталт нэг нэгээр нь татаж байсан мөрүүдийг буцаадаг нэг асуулга нь давталт болон тойрог замыг хоёуланг нь арилгана. Эхлээд давталтыг хай, учир нь энэ нь ихэвчлэн илүү том ашиг, хянахад хялбар өөрчлөлт юм.
Багц нь алдаа боловсруулалт болон гүйлгээний хил хязгаарыг хадгалах ёстой. Хамааралгүй мэдэгдлүүдийг нэг мөр болгон холбох нь аюулгүй оновчлол биш бөгөөд бүтэлгүйтсэн мэдэгдлийг амжилттай илгээлтийн ард нуудаг багц нь хэмнэсэн хүлээлтээс ч дор юм.
Зурвасын өргөн худалдаж авахаасаа өмнө холболтыг дахин ашигла
Шинэ холболт нь нэр шийдвэрлэх, TCP гар барилт, TLS хэлэлцээр, баталгаажуулалтыг зарцуулдаг бөгөөд өндөр сааталтай зам дээр тэдгээр бүр эхний асуулга ажиллахаас өмнөх өөр нэг тойрог зам юм. Холболтын пулууд тэр зардлыг дуудлага бүрд биш, процесс бүрд нэг удаа төлөхөд зориулагдсан.
ADO.NET дотор пулын холболтыг хаах буюу dispose хийх нь шинэ физик холболт нээхийн оронд түүнийг дахин ашиглахаар буцаадаг тул алдагдал мэт харагдах загвар нь ихэвчлэн зөв хэрэглээ юм. Пул үнэхээр ашиглагдаж байгаа эсэхийг таамаглахгүй шалга: физик холболт үүсгэлтийг логлох эсвэл дэлгэц ажиллаж байх үед сервер дээрх сессийн тоог хяна. SQL гүйцэтгэлийн удирдамж тойрог замыг багасгах, ойр ойрхон ad hoc дуудлагыг багцлах тухай ижил зүйлийг хэлдэг бөгөөд үйлчилгээнд тохирсон жишээнүүдийг та өөрийн байршуулалтад буулгах хэрэгтэй.
Пуллах нь тохиргооны зардлыг арилгаад дараалсан асуулгын хүлээлтийг хөндөхгүй үлдээдэг. Энэ нь өөрөө засвар биш, цэвэр хэмжилтийн урьдчилсан нөхцөл юм.
Гүйцэтгэлийг өгөгдөлд ойртуулахыг жинлэж үз
Аппыг өгөгдлийн сангийн дэргэд ажиллуулах нь олон алсын өгөгдлийн сангийн солилцоог нэг алсын дэлгэцийн сессээр солино. Яриасаг ачаалалд энэ нь том өөрчлөлт байж болох бөгөөд энэ нь гүйцэтгэлийн адил үйл ажиллагааны өөрчлөлт юм: сессийн удирдлага, хандалтын хяналт, программын байршуулалт, хэрэглэгчийн туршлага бүгд апптай хамт зөөгдөнө.
Аль ч чиглэл хурдан гэж үзэхээс өмнө бодит интерфейс болон түүний дамжуулж буй өгөгдлийг хэмж. Алсын ширээний сесс пикселүүдийг зөөдөг бөгөөд нягт графиктай дэлгэц нь ижил зам дээр өөрөө орлуулсан асуулгуудаас дор ажиллаж болно, ялангуяа клиент тасралтгүй дахин зурж байх үед.
Дараа нь анхны үйлдлийг давтаж, гурван тоог харьцуул: дараалсан хүлээлт, үр дүнгийн хэмжээ, эхнээс төгсгөл хүртэлх дуусах хугацаа. Өгөгдлийн зөв байдал, хандалтын бодлогыг хадгалахын зэрэгцээ хэмжигдсэн хэрэглэгчийн даалгаврыг өөрчилдөг сайжруулалт нь хадгалах үнэ цэнэтэй.