Kas on mingit vahet selles osas, kui otsingutingimusse kirjutada IS TRUE või =TRUE? Tegelikult ei ole. Teen väikese katsetuse PostgreSQLis (ver 16).CREATE TABLE Bool_test (bool_test_id SERIAL,flag BOOLEAN NOT NULL,CONSTRAINT pk_bool_test PRIMARY KEY (bool_tes... PostgreSQLBOOLEANtõeväärtusSQL süntaksNULLkolmene loogikaNOT NULL 16.01.2024 19:00:01 | Erki Eessaar
Kui veebipõhises andmebaasirakenduses on vaja esitada päringu tulemusi lehekülgede kaupa, siis kuidas oleks kõige parem vastavat päringut andmebaasis teha? Sellest kirjutatakse pikemalt SIIN, pagineeriminelehekülgedeks jagamineramptöökiirusjõudluslimitoffsetpaginationlehekülgedeks jagaminepagineeriminejõudlusoptimeerimineSQL 06.11.2023 11:50:17 | Erki Eessaar
Kuidas kiirendada PostgreSQLis päringuid, kus päringu tingimuses kontrollitakse stringi vastavust mustrile (nt leia isikud, kelle perenimi algab M tähega)? Looge tekstilisele veerule indeks ja kasutage selle puhul operaatori klassi, mis pole vaikimisi klass. TEXT tüüpi veeru korral kas... generate_seriestestandmete genereerimineindeksPostgreSQLindeksidmustripõhine otsingjõudlusoperaatoriklassid 27.10.2023 16:28:47 | Erki Eessaar
Millal võiks olla kasu baastabeli arvutatud veergudest? Arvutatud veeru puhul arvutatakse väljas olev väärtus teiste samas reas olevate väärtuste puhul ja salvestatakse kettale. PostgreSQLarvutatud veerudgenerated columnsjõudlusoptimeeriminedenormaliseeriminekoondandmed 14.10.2023 11:50:04 | Erki Eessaar
Mul on sellised ja sellised tabelid ning ma pean nende põhjal lahendama sellise ja sellise andmete otsimise ülesande. Milline oleks selle ülesande kõige parema jõudlusega lahendus? Tuleb korraldada eksperiment ja erinevaid lahendusi katsetada. Kui Teil pole käepärast serverit, kus saate "liivakastis" mängida, siis isegi keskkonnas nagu DB Fiddle PostgreSQLjõudlustestidoptimeerimineEXPLAIN ANALYZEmaterialiseeritud vaatedtestandmedeksperiment 10.10.2023 10:19:50 | Erki Eessaar
Kuidas teha kindlaks, kas PostgreSQL andmebaasisüsteem viib läbi automaatset prügikoristust? Prügikoristus on vajalik, sest PostgreSQL kasutab multiversioon konkurentsjuhtimist (multiversion concurrency control), mis tähendab, et rea lugemine ei takista samal ajal selle sama rea muutmist ning rea muutmine ei takista samal ajal selle... MVCCmultiversioon konkurentsjuhtimineautovacuumPostgreSQLprügikoristusautovacuumstatistikajõudlusMVCC 06.10.2023 12:55:01 | Erki Eessaar
Teen otsingusüsteemi ja pean toetama võimalust, et üks või mitu otsingutingimust tuleb päringus AND'idega kokku siduda? Millisel viisil oleks seda efektiivne teha? Teen katsetuse PostgreSQL (15) andmebaasis, millel on järgnev kontseptuaalne struktuur.[Person]-1-----------0..*-[Health_care_visit]-0..*----------------1-[Facility]TabelisHealth_care_visit - 1 miljon ridaPerson - ... PostgreSQLjõudlusoptimeerimineINTERSECTAND operaatorpäringu plaanEXPLAIN ANALYZE 01.04.2023 13:24:36 | Erki Eessaar
Millest alustada, kui sooviks õppida (PostgreSQLis) päringute optimeerimist? Minu arvates võiks alustada sellest, et õppida kirjutama mitte-ebaefektiivseid päringuid (lihtsustamata tingimused, üleliigsete tabelite lugemine, samade andmete mitmekordne lugemine jne).... PostgreSQLoptimeeriminetäitmisplaanEXPLAINjõudlusSQL häälestamineressursikulu 23.03.2023 10:37:37 | Erki Eessaar
Kuidas saab PostgreSQLis ühe lausega lisada tabelisse puuduvad read ja uuendada olemasolevaid ridu? Sellist operatsiooni tuntakse ka nime all upsert (kombinatsioon INSERT ja UPDATE operatsiooniks).Selle realiseerimiseks saab PostgreSQLis kasutada INSERT ... ON CONFLICT lauset. Alates PostgreSQL 15 saab selleks kasutada ka upsertmergePostgreSQLUPSERTMERGEandmemuudatusedkonfliktide lahendamine 24.10.2022 00:06:18 | Erki Eessaar
Kas isiku rollide omamise registreerimise võiks realiseerida nii, et luua loendustüüp rollide nimedega ning kasutajate tabelis luua veerg, mille väärtuseks on seda loendustüüpi väärtuste massiiv? See on võimalik, aga ma ei soovita. Soovitan rollide jaoks luua eraldi klassifikaatori tabeli ja luua eraldi tabeli rollide omamiste kohta.CREATE TYPE t_roll AS ENUM('juhataja','administraator','tavakasutaja'); enumenumeration typePostgreSQLmassiividloendustüüpdisainandmemudelnormaliseerimine 01.06.2022 00:00:00 | Erki Eessaar