Millest alustada, kui sooviks õppida (PostgreSQLis) päringute optimeerimist?

Postitas Erki Eessaar, 23.03.2023 10:37 (muudeti 18.08.2023 17:47)
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 (materjal "Andmebaasid I" kodulehel - kasutajanimi SIS2 ja parool SIS2).
 
PostgreSQL füüsilistes täitmisplaanides kajastuvad operatsioonid (lihtsad ja lühikesed seletused):
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 ...;
 
Seejärel soovitan tekitada endale isiklikku liivakasti andmebaasi 5-10 tabeliga, millest suurimas tehinguandmeid sisaldavas andmebaasis on vähemalt üks miljon rida sünteetilisi testandmeid. Kui edaspidi tekib küsimus, milline SQL lause lahendab kõige efektiivsemalt mõne ülesande, siis saab selle andmebaasi põhjal sõnastada ülesandele analoogilise ülesande ja teha katsetusi. SIIT leiab näiteid PostgreSQLi jaoks testandmete genereerimise kohta. Vihjeks võib öelda, et palju on abi PostgreSQL funktsioonist generate_series.

Kas postitus oli kasulik? Hinda seda!

Keskmine hinne: Pole veel hinnanguid!


← Eelmine postitus Millest alustada, kui sooviks õppida (PostgreSQLis) päringute optimeerimist? Järgmine postitus → Kas oskate soovitada kirjandust, kust saaks näiteid ja infot kuidas PostgreSQLis objekt-relatsioonilisest tulenevaid võimalusi ära kasutada ning sellega kaasnevaid plusse ja miinuseid (lisaks kasvavale keerukusele)?