O chionn leth-bhliadhna
Thairis air na mìosan a dh'fhalbh tha sinn air a dhèanamh mu dheidhinn
Agus a-nis tha sinn deiseil airson innse dhut mu na feartan ùra as urrainn dhut a chleachdadh.
Taic airson diofar chruthan plana
Plana bhon log, còmhla ris an iarrtas
Gu dìreach bhon chonsail, bidh sinn a 'taghadh a' bhloc gu lèir, a 'tòiseachadh bhon loidhne le Teacs ceist, leis a h-uile prìomh àite:
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)
...
Aig an toradh, bidh sinn cuideachd a’ faighinn bònas don phlana nach deach a chruinneachadh tab co-theacsa, far am bheil ar n-iarrtas air a thaisbeanadh 'na uile ghlòir :
JSON agus 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
}
]"
Eadhon le briathran bhon taobh a-muigh, mar leth-bhreacan pgAdmin, eadhon às aonais - bidh sinn a ’tilgeil san aon raon, is e bòidhchead an toradh:
Sealladh adhartach
Ùine Dealbhaidh / Ùine Cur gu bàs
A-nis chì thu nas fheàrr càite an deach an ùine a bharrachd nuair a chuir thu an gnìomh a’ cheist:
I/O Uair
Aig amannan feumaidh tu dèiligeadh ri suidheachadh far a bheil e coltach, a thaobh goireasan, nach deach cus a leughadh agus a sgrìobhadh, ach tha e coltach gu bheil an ùine cur gu bàs mì-chothromach airson adhbhar air choireigin.
Feumar a ràdh an seo:O, is dòcha, aig an àm sin bha cus luchdachadh air an diosg air an fhrithealaiche, is e sin as coireach gun tug e cho fada ri leughadh!“Ach dòigh air choireigin chan eil e gu math ceart ...
Ach faodar a cho-dhùnadh gu tur earbsach. Is e an fhìrinn gu bheil am measg roghainnean rèiteachaidh an fhrithealaiche PG track_io_timing
A’ comasachadh obrachaidhean I/O le ùine. Tha an suidheachadh seo à comas gu bunaiteach, oir tha e ag iarraidh air an t-siostam obrachaidh an ùine làithreach a cheasnachadh gu cunbhalach, rud a dh’ fhaodadh cùisean a lughdachadh gu mòr air cuid de àrd-ùrlaran. Faodaidh tu an goireas pg_test_timing a chleachdadh gus tuairmse a dhèanamh air an t-àm a bharrachd air an àrd-ùrlar agad. Gheibhear staitistig I/O tron t-sealladh pg_stat_database, anns an toradh EXPLAIN (nuair a thèid am paramadair BUFFERS a chleachdadh) agus tron t-sealladh pg_stat_statements.
Faodar an roghainn seo a chomasachadh cuideachd taobh a-staigh seisean ionadail:
SET track_io_timing = TRUE;
Uill, a-nis is e am pàirt as fheàrr gu bheil sinn air ionnsachadh an dàta seo a thuigsinn agus a thaisbeanadh, a ’toirt aire do na h-atharrachaidhean air fad air a’ chraobh cur gu bàs:
An seo chì thu sin a-mach à 0.790ms den ùine cur gu bàs iomlan, ghabh 0.718ms aon duilleag de dhàta a leughadh, 0.044ms - ga sgrìobhadh, agus cha deach ach 0.028ms a chosg air a h-uile gnìomh feumail eile!
San àm ri teachd le PostgreSQL 13
Airson sealladh farsaing air na tha ùr, faic
Bufairean planadh
Tha cunntas airson goireasan a chaidh a riarachadh don chlàr-chlàir ri fhaicinn ann am bad eile nach eil co-cheangailte ri pg_stat_statements. Mìnichidh an roghainn BUFFERS an àireamh de bhufairean a chaidh a chleachdadh aig ìre dealbhaidh:
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
Seòrsa mean air mhean
Ann an cùisean far a bheil feum air rèiteachadh le mòran iuchraichean (k1, k2, k3…), faodaidh an dealbhaiche a-nis brath a ghabhail air fios a bhith aige gu bheil an dàta air a rèiteachadh mu thràth le grunn de na ciad iuchraichean (me k1 agus k2). Anns a 'chùis seo, chan urrainn dhut an dàta gu lèir ath-sheòrsachadh a-rithist, ach an roinn ann am buidhnean leantainneach leis na h-aon luachan k1 agus k2, agus "ath-sheòrsachadh" leis an iuchair k3.
Mar sin, bidh an seòrsachadh gu lèir a’ briseadh suas gu grunn sheòrsan leantainneach de mheud nas lugha. Bidh seo a 'lùghdachadh na tha de chuimhne a dhìth, agus leigidh e leat a' chiad dàta a thilleadh mus bi a h-uile seòrsachadh deiseil.
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
Leasachaidhean UI/UX
Tha seallaidhean-sgrìn anns a h-uile àite!
A-nis air gach taba tha cothrom ann gu sgiobalta gabh dealbh-sgrìn den taba gu clipboard airson leud agus doimhneachd iomlan a 'chlàir - "sealladh" deas gu h-àrd:
Gu fìrinneach, chaidh a’ mhòr-chuid de na dealbhan airson an fhoillseachaidh seo fhaighinn san dòigh seo.
Molaidhean air notaichean
Chan e a-mhàin gu bheil barrachd dhiubh ann, ach mu gach fear as urrainn dhut
A thoirt air falbh bhon tasglann
Tha cuid air iarraidh air comas sguab às "gu tur" eadhon planaichean nach eil air am foillseachadh san tasglann - feuch, dìreach cliog air an ìomhaigh fhreagarrach:
Uill, na dìochuimhnich gu bheil againn
Source: www.habr.com