Kuidas kustutada korraga mitu tabeliga seotud kitsendust? See on hea näide, kuidas SQLi dialekt e mägimurrak erineb erinevates andmebaasisüsteemides detailide poolest. Järgnev katsetus tehti keskkondades DB Fi... kitsenduste kustutamineALTER TABLESQL süntaksDDLandmebaasisüsteemidporditavusDROP CONSTRAINT 14.11.2024 11:52:06 | Erki Eessaar
Kuidas on seotud andmebaasid ja tehisaru (AI)? Andmebaasisüsteemid on seotud tehisaruga erinevates aspektides. Treeningandmed võivad tulla andmebaasist. Mingisugune osa tehisaru süsteemidest saab olla realiseeritud andmebaasisüsteemi vahendeid kasutades – mitte and... tehisintellektAITImasinõpetransformerRAGvektorandmebaasOraclePostgreSQLagentMCPSELECT AI 17.10.2024 09:32:36 | 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 ja millised probleemid võivad tekkida andmebaasirakenduse tegemisel kasutades mõnda ORM (Object-Relational Mappers, objekt-relatsioonvastenduse) vahendit? SIIN (Sulaoja, K.M., Saarep, A. Cognate kasutajamugavuse parandamine ja arendustöö lihtsustamine) on 2024. aasta bakal... rutiinfunktsioonprotseduurhetktõmmismaterialiseeritud vaadevirtuaalne andmete kihtandmebaasi avalik liidesORMDjangojõudlus 02.10.2024 13:01:39 | 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