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
Millal kasutada SQLis tabelite ühendamist ja millal alampäringut? SQL on keeleliselt liiane, mis tähendab, et aastate jooksul on SQL keelt täiendatud aina uute keelekonstruktsioonidega... JOINalampäringSQL strateegiaDELETE lauseUPDATE lauseporditavuspäringute optimeerimine 06.04.2024 15:51:48 | Erki Eessaar
Kuidas töötavad SQLis tingimused IN ja NOT IN? Oletame, et meil on sellise kontseptuaalse struktuuriga andmebaas:[Hotell]-1------------0..*-[Reserveerimine]Ülesanne: Leia reserveerimised, mis on tehtud Tallinna linnas olevas hotellis. IN operaatorNOT IN operaatorNULL väärtusalampäringkolmene loogikaSQL tingimusedhulgad 06.04.2024 11:06:21 | 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 kasutada õigesti TOP (MS Access) ja FETCH FIRST n ROWS WITH TIES (PostgreSQL) predikaate väärtuste jadas kohal x olevate väärtuste leidmiseks? TOP n - saab kasutada MS Accessis (samaväärset TOP ... WITH TIES saab kasutada MS SQL Serveris). SQL-standard ei kirjelda. LIMIT n - Saab kasutada nt PostgreSQLis (ja ka nt LibreOffice Ba... TOP nLIMITFETCH FIRSTWITH TIESjärjestaminepingereadalampäring 28.03.2024 11:30:59 | Erki Eessaar
Kuidas konkateneerida MS Accessis, PostgreSQLis ja LibreOffice Baseis tekstilisi väärtuseid, kui üks väärtus puudub (on NULL)? Oletame, et andmebaasis on tabel, kuhu on lisatud kaks rida andmeid. Ühel isikul perenimi puudub (on NULL).CREATE TABLE Isik(isik_id INTEGER,eesnimi VARCHAR(50) NOT NULL,perenimi VARCHAR(50), stringide liitminekonkatenatsioonNULL väärtusCoalesceMS AccessPostgreSQLConcat 23.03.2024 16:53:47 | Erki Eessaar
Kas tühja stringi esinemise keelamine ja NOT NULL kitsendus on üks ja sama asi? Ei ole! Tühi string on väärtus (kuigi väga lühike).NULL on tähis, et väärtust ei ole.NOT NULL veergu saab seega tühja stringi panna, sest see täidab tingimuse, et väljas peab väärtus olema.Kui näiteks s... tühi stringNULLNOT NULLCHECK kitsendusOracle erinevusedandmekvaliteetpuuduvad väärtused 03.03.2024 12:21:36 | 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