Minu arvates võiks alustada sellest, et õppida kirjutama mitte-ebaefektiivseid päringuid (lihtsustamata tingimused, üleliigsete tabelite lugemine, samade andmete mitmekordne lugemine jne). Selleks, et detektiivina lausete aeglase täitmise põhjuste jälgi ajada, tuleb aru saada täitmisplaanis kasutatavatest operatsioonidest.
Päringute optimeerimisest üldiselt kirjutatakse SIIN.
Ebaefektiivsetest päringutest kirjutatakse SIIN.
PostgreSQL füüsilistes täitmisplaanides kajastuvad operatsioonid (lihtsad ja lühikesed seletused):
- https://www.vertabelo.com/blog/technical-articles/understanding-execution-plans-in-postgresql
- Erinevat tüüpi operatsioonid täitmisplaanides:
- https://pganalyze.com/docs/explain/scan-nodes
- https://pganalyze.com/docs/explain/join-nodes
- https://pganalyze.com/docs/explain/other-nodes
- https://use-the-index-luke.com/sql/explain-plan/postgresql/operations
- https://www.cybertec-postgresql.com/en/join-strategies-and-performance-in-postgresql/
Veel märkmeid: https://gist.github.com/hgmnz/883144
Võimalikud vahendid tekstiliselt esitatud täitmisplaanide paremaks struktureerimiseks ja visualiseerimiseks:
- See vahend soovib sisendiks saada päringu täitmisplaani JSON formaadis. Seda saab andmebaasisüsteemilt küsida nii: EXPLAIN (FORMAT JSON) SELECT ...;