Ним сол пеш
Дар давоми моҳҳои охир мо дар бораи ӯ кор кардем
Ва ҳоло мо омодаем ба шумо дар бораи хусусиятҳои наве, ки шумо метавонед истифода баред, нақл кунем.
Дастгирии форматҳои гуногуни нақша
Нақша аз гузориш, дар якҷоягӣ бо дархост
Бевосита аз консол, мо тамоми блокро интихоб мекунем, аз хати бо Матни дархост, бо ҳама ҷойҳои пешбар:
Query Text: INSERT INTO dicquery_20200604 VALUES ($1.*) ON CONFLICT (query)
DO NOTHING;
Insert on dicquery_20200604 (cost=0.00..0.05 rows=1 width=52) (actual time=40.376..40.376 rows=0 loops=1)
Conflict Resolution: NOTHING
Conflict Arbiter Indexes: dicquery_20200604_pkey
Tuples Inserted: 1
Conflicting Tuples: 0
Buffers: shared hit=9 read=1 dirtied=1
-> Result (cost=0.00..0.05 rows=1 width=52) (actual time=0.001..0.001 rows=1 loops=1)
... ва ҳама чизеро, ки нусхабардорӣ карда шудааст, бевосита ба саҳро барои нақша партоед, бидуни ҷудо кардани чизе:
Дар баромади мо ба плани чудошуда низ мукофот мегирем ҷадвали контекст, ки дар он дархости мо бо тамоми ҷалоли худ пешниҳод карда мешавад:
JSON ва YAML
EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
SELECT * FROM pg_class;
"[
{
"Plan": {
"Node Type": "Seq Scan",
"Parallel Aware": false,
"Relation Name": "pg_class",
"Alias": "pg_class",
"Startup Cost": 0.00,
"Total Cost": 1336.20,
"Plan Rows": 13804,
"Plan Width": 539,
"Actual Startup Time": 0.006,
"Actual Total Time": 1.838,
"Actual Rows": 10266,
"Actual Loops": 1,
"Shared Hit Blocks": 646,
"Shared Read Blocks": 0,
"Shared Dirtied Blocks": 0,
"Shared Written Blocks": 0,
"Local Hit Blocks": 0,
"Local Read Blocks": 0,
"Local Dirtied Blocks": 0,
"Local Written Blocks": 0,
"Temp Read Blocks": 0,
"Temp Written Blocks": 0
},
"Planning Time": 5.135,
"Triggers": [
],
"Execution Time": 2.389
}
]"
Ҳатто бо нохунакҳои беруна, ҳамчун нусхаҳои pgAdmin, ҳатто бе - мо дар як майдон мепартоем, натиҷа зебост:
Визуалии пешрафта
Вақти банақшагирӣ / Вақти иҷро
Акнун шумо метавонед беҳтар бубинед, ки вақти изофӣ ҳангоми иҷрои дархост куҷо рафтааст:
Вақти I/O
Баъзан шумо бояд бо вазъияте рӯ ба рӯ шавед, ки аз рӯи захираҳо, ба назар чунин мерасад, ки аз ҳад зиёд хондану навишта нашудааст, аммо ба назар чунин менамояд, ки вақти иҷроиш бо баъзе сабабҳо номувофиқ аст.
Дар ин ҷо бояд гуфт:Эҳтимол, дар он лаҳза диски сервер аз ҳад зиёд пурбор шуда буд, бинобар ин хондан ин қадар тӯл кашид!"Аммо гӯё он қадар дақиқ нест ...
Аммо онро комилан боэътимод муайян кардан мумкин аст. Далели он аст, ки дар байни вариантҳои конфигуратсияи сервери PG мавҷуданд track_io_timing
Амалиётҳои воридот / баромади вақтро фаъол мекунад. Ин танзимот ба таври нобаёнӣ ғайрифаъол аст, зеро он аз системаи оператсионӣ талаб мекунад, ки пайваста вақти ҷорӣро пурсад, ки метавонад корҳоро дар баъзе платформаҳо ба таври назаррас суст кунад. Шумо метавонед утилитаи pg_test_timing -ро барои ҳисоб кардани хароҷоти вақт дар платформаи худ истифода баред. Омори вуруд/баҳоро тавассути намоиши pg_stat_database ба даст овардан мумкин аст, дар баромади EXPLAIN (вақте ки параметри BUFFERS истифода мешавад) ва тавассути намуди pg_stat_statements.
Ин хосият инчунин метавонад дар як ҷаласаи маҳаллӣ фаъол карда шавад:
SET track_io_timing = TRUE;
Хуб, ҳоло беҳтарин қисми он аст, ки мо фаҳмидан ва намоиш додани ин маълумотро бо назардошти ҳама тағиротҳои дарахти иҷро омӯхтаем:
Дар ин ҷо шумо мебинед, ки аз 0.790 ms вақти умумии иҷро, 0.718 мс як саҳифаи маълумотро хондааст, 0.044 мс - навиштани он ва танҳо 0.028 мс барои ҳама корҳои муфиди дигар сарф шудааст!
Оянда бо PostgreSQL 13
Барои шарҳи пурраи чизҳои нав, нигаред
Буферҳои банақшагирӣ
Баҳисобгирии захираҳои ба нақшакаш ҷудошуда дар ямоқи дигар, ки ба pg_stat_statements алоқаманд нест, инъикос карда мешавад. Шарҳ бо варианти BUFFERS шумораи буферҳои дар марҳилаи банақшагирӣ истифодашударо гузориш медиҳад:
Seq Scan on pg_class (actual rows=386 loops=1) Buffers: shared hit=9 read=4 Planning Time: 0.782 ms Buffers: shared hit=103 read=11 Execution Time: 0.219 ms
Навъи афзоянда
Дар ҳолатҳое, ки ҷудокунӣ аз рӯи калидҳои зиёд (k1, k2, k3…) лозим аст, банақшагир ҳоло метавонад аз он истифода барад, ки маълумот аллакай аз рӯи якчанд калидҳои аввал мураттаб карда шудааст (масалан, k1 ва k2). Дар ин ҳолат, шумо наметавонед ҳамаи маълумотро аз нав ҷудо кунед, балки онҳоро ба гурӯҳҳои пайдарпай бо арзишҳои якхелаи k1 ва k2 тақсим кунед ва онҳоро бо калиди k3 "аз нав мураттаб кунед".
Ҳамин тариқ, тамоми навъбандӣ ба якчанд навъбандиҳои пайдарпайи андозаи хурдтар тақсим мешавад. Ин миқдори хотираи лозимиро кам мекунад ва инчунин ба шумо имкон медиҳад, ки маълумоти аввалро пеш аз анҷоми ҳама навъбандӣ баргардонед.
Incremental Sort (actual rows=2949857 loops=1) Sort Key: ticket_no, passenger_id Presorted Key: ticket_no Full-sort Groups: 92184 Sort Method: quicksort Memory: avg=31kB peak=31kB -> Index Scan using tickets_pkey on tickets (actual rows=2949857 loops=1) Planning Time: 2.137 ms Execution Time: 2230.019 ms
Такмили UI/UX
Скриншотҳо дар ҳама ҷо ҳастанд!
Акнун дар ҳар як ҷадвал имкон дорад, ки зуд скриншоти ҷадвалро ба буфер гиред барои тамоми паҳнӣ ва умқи ҷадвал - "намоиш" рост аз боло:
Воқеан, аксари расмҳо барои ин нашрия ба ҳамин тариқ ба даст оварда шудаанд.
Тавсияҳо оид ба гиреҳҳо
На танҳо бештари онҳо ҳастанд, балки дар бораи ҳар яки шумо метавонед
Хориҷ аз архив
Баъзеҳо хоҳиш карданд, ки қобилияти нест кардани "комилан" ҳатто нақшаҳое, ки дар бойгонӣ нашр нашудаанд - лутфан, танҳо нишонаи мувофиқро клик кунед:
Хуб, биёед фаромӯш накунем, ки мо дорем
Манбаъ: will.com