Hva er fordelene og ulemper ved en Delta eller en Subquery?

Hva er fordelene og ulemper ved en Delta eller en Subquery?


En delspørringen er en spørring i en annen spørring. En delspørringen også kan inneholde en annen delspørring. Disse er sagt å være "nøstede" subqueries. En delta er når to eller flere tabeller er referert i "Fra" klausul i søket. Forskjellige databasemotorer kan optimalisere subqueries og slutter seg annerledes. For eksempel, vil DB2-optimizer forvandle en delspørring til en delta dersom visse kriterier er oppfylt. I noen tilfeller kan en delta gir bedre ytelse enn en delspørring.

Hva gjør en Subquery

En delspørringen er en "SELECT" statement innenfor "WHERE" eller "å ha" -klausulen av en ytre "SETT", "UPDATE", "Slå sammen" eller "SLETT" statement. Delspørringen også kalles "indre søket" eller "indre velge." Delspørringen kan ha en "FRA" -klausulen med en eller flere tabeller, og kan eventuelt ha en "WHERE", "GROUP BY" eller "å ha" klausulen. Det er alltid innelukket i parentes.

Fordeler og ulemper med subqueries

Subqueries er en fordel fordi de strukturere søket for å isolere hver del av uttalelsen, utfører samme operasjon som vanligvis ville kreve komplekse tiltrer og fagforeninger, og er lettere å lese. Delspørringer selv var grunnlaget for navnet "Structured Query Language" (SQL) på grunn av deres lett lesbar struktur. En ulempe er at du ikke kan endre et bord og velge fra samme tabell i en delspørring i samme SQL-setning. Subqueries kan også ta lengre tid å gjennomføre enn en bli med på grunn av hvordan databasen optimizer behandler dem.

Hva gjør en Delta

De fleste subqueries kan omskrives som blir med, og de fleste sammenføyninger kan omskrives som subqueries. En delta definerer to eller flere tabeller ved et beslektet kolonne. Tabeller vanligvis er sluttet på primær- og fremmednøkler. For eksempel kan en ansatt tabellen har en primærnøkkel for en ansatt id kolonne, mens en timeliste bord har også en ansatt id kolonne som er en fremmednøkkel til tabellen employee. SQL kombinering kan skrives som "WHERE employee.empid = timesheet.empid" eller "Fra ansatt BLI time ON (employee.empid = timesheet.empid)."

Fordeler og ulemper joins

Den største fordelen med en sammenføyning er at den utføres raskere. Den ytelsesøkning kanskje ikke være merkbar av sluttbrukeren. Men fordi kolonnene er spesielt navngitt og indeksert og optimalisert av databasemotoren, vil hentetiden nesten alltid være raskere enn en delspørring. Det er også indre og ytre sammenføyninger, venstre og høyre tiltrer, full tiltrer og kryss tiltrer. En ulempe ved bruk av sammenføyninger er at de ikke er så lett å lese som delspørringer. En annen ulempe er at det kan være forvirrende om hvilke delta er riktig type slutte å bruke for å gi den riktige ønskede resultat sett.