Kui sagedasti toimub PostgreSQLis automaatne prügikoristus ja statistika vaatamine? Kuidas seda vaadata ja muuta? Prügikoristus (VACUUM) eemaldab PostgreSQLis surnud reaversioonidest tekkinud tarbetu ruumikasutuse ja valmistab ruumi uute andmete jaoks. Statistika värskendamine (ANALYZE) kogub tabelite andmete kohta statistikat, mida päringuoptimeerija kasut... PostgreSQLvacuumanalyzeprügikoristusstatistikaautomaatne 25.09.2026 14:03:53 | Erki Eessaar
Kuidas kasutada tehisintellekti andmebaasi disainilahenduste kiireks võrdlemiseks? Järgnev illustreerib kahte asja: kiire eksperimenteerimine tehisintellekti abil, Entity Attribute Value (EAV) andmebaasi disaini võrrelduna tavalise disainiga. Kõik viidatud failid on küsimusele lisat... Entrity Attribute ValueEAVtehisintellektTIAIGemini 15.03.2026 13:16:38 | Erki Eessaar
Kuidas vältida konkurentsiprobleeme teise tabeli andmete kontrollimisel? Kui andmebaasioperatsiooni lepingus on näiteks kirjas eeltingimus, et uus kauba seisund peab olema aktiivne, siis selle eeltingimuse täidetust saab kontrollida operatsiooni käigus. Eelistada tuleks EXISTS alampäringut, kus on määratud FO... PostgreSQLOraclelukustaminejagatud lukkeksklusiivne lukkFOR UPDATEFOR SHAREpgbench 09.12.2025 19:24:00 | Erki Eessaar
Süsteemi genereeritud võtmeväärtustena saab kasutada nii täisarve kui universaalselt unikaalseid identifikaatoreid (uuid). Millised on kummagi lähenemise eelised ja puudused? Süsteemi genereeritud võtmeväärtustena võib kasutada täisarve. PostgreSQLis saab selleks kasutada SMALLSERIAL/SERIAL/BIGSERIAL notatsiooni või määrata, et vastav veerg on identiteedi veerg. Genereeritud väärtus on täisarv, mis on kas 2 baiti (SMALLSE... PostgreSQLUUIDprimaarvõtijõudlussalvestusruumtäisarvudvõtmed 03.10.2024 10:33:58 | Erki Eessaar
Kas saate tuua näite sellest, kuidas ebaotstarbekas SQL ülesande lahendus mõjutab vastuse saamise kiirust? Olgu meil PostgreSQL andmebaas järgmise kontseptuaalse struktuuriga:[Facility]-1---------------0...*-[Health_care_visit] Facility - 50_000 ridaHealth_care_visit - 1_000_000 rida.Järgnevad ka... otsekorrutisCartesiuse ristkorrutistäitmisplaanexecution planprotsentprotsendiarvutusjõudlusebaefektiivne päringoptimeeriminePostgreSQL 21.04.2024 09:30:30 | Erki Eessaar
Kas korduste eemaldamine IN/NOT IN alampäringus muudab lause täitmise kiiremaks või mitte? Sõltub andmebaasisüsteemist. Näiteks PostgreSQLis on sellel suur mõju, MySQLis ei ole mõju. PostgreSQLis aeglustab korduste eemaldamine alampäringus IN päringu täitmist kolm korda kuid muudab NOT IN päringu täitmise absurdselt palju kiiremaks... optimeerimineIN operaatorNOT IN operaatoralampäringDISTINCTPostgreSQLpäringu plaan 14.04.2024 15:56:09 | Erki Eessaar
Kas UPDATE lause võiks kirjutada nii, et WHERE klauslisse kirjutatud tingimuse asemel kirjutatakse SET klauslisse tingimus, mille täidetuse korral uuendatakse vastavat rida? Süntaksi mõttes on see tehtav ja annaks soovituse tulemus, kuid PostgreSQL (16) näitel oleks see halva jõudlusega lahendus.Vaatame näidet.Andmebaasis on tabel Health_care_visit, kus on üks miljon rida. UPDATE lauseCASE avaldisjõudlusoptimeeriminePostgreSQLandmemuudatusedWHERE klausel 07.04.2024 14:14:44 | Erki Eessaar
Kuidas arvutada SQLis protsenti nii, et ei peaks sama tabelit mitmekordselt lugema? PostgreSQLis on andmebaas järgmise kontseptuaalse struktuuriga.[Facility_type]-1-------0..*-[Facility]-1---------------0..*-[Health_care_visit]Tabelis Facility_type on 5 rida.Tabelis Facility on 5_000 r... protsentprotsendiarvutusFILTER klauselnulliga jagaminePostgreSQLjõudlusoptimeerimineühine tabeli avaldisCTE 01.04.2024 09:43:54 | Erki Eessaar
Kuidas oleks PostgreSQLis töökiiruse mõttes kõige efektiivsem leida andmed ühest tabelist ja väljastada tulemuses ka tõeväärtus, mis leitakse teises tabelis olevate andmete põhjal? Järgnev katsetus on tehtud PostgreSQL (16) põhjal.Andmebaasis on tabelid järgmise kontseptuaalse struktuuriga:[Person]-1----------0..*-[Health_care_visit]Tabelis Person on 70_000 rida.Tabelis Hea... PostgreSQLjõudlusoptimeerimineEXISTSalampäringpäringu plaantäitmiskiirus 22.03.2024 09:11:42 | Erki Eessaar
Kas Count(1) ridade arvu loendamiseks on kiirem kui Count(*)? Oletame, et SQL-andmebaasis on tabel:Isik(isikukood, perenimi)Primaarvõti (isikukood)LauseSELECT Count(*) AS arvFROM Isik;leiab tabelis Isik olevate ridade... kokkuvõttefunktsioonjõudlustöökiirusPostgreSQLCountoptimeeriminepäringu plaanEXPLAIN ANALYZE 17.03.2024 17:26:19 | Erki Eessaar