Forskelle mellem SQL eksisterer og ind Forskel mellem

Anonim

SQL eksisterer i forhold til

Problemløsning i TSQL er tilgængelig via forskellige metoder, og de ønskede resultater kan ses ved hjælp af nogen af ​​dem. En af måderne, hvorpå slutresultatet kan opnås, er ved hjælp af IN og EXISTS-klausuler. Anvendelsen af ​​klausulerne hjælper filtrering af resultatsættet med henvisning til en underforespørgsel, der er tilgængelig. Udførelsen af ​​IN og EXISTS er lidt forskellig, og det er disse forskelle, der vurderes.

Der er forskellige faktorer, der afgør, om IN eller EXISTS vil blive rullet ud. En af dem er det datamængde, der er tilgængeligt i tabellen. En stor mængde data resulterer i SQL-serveren, der vender tilbage til brug af en indekssøgning frem for at bruge en indekssøgning.

Forskelle

Den givne statistik fortæller også meget om den gennemførelsesplan, der skal følges. Forskellen vises, når serveren har akkumuleret nok statistik til at træffe en gyldig beslutning, og når der ikke er statistik første gang. Den anvendte hardware bestemmer også, om IN eller EXISTS skal anvendes. Dette afhænger i vid udstrækning af antallet af CPU'er, der er til rådighed.

EXISTS køres, når der er behov for at matche resultaterne af en forespørgsel med en anden underforespørgsel. IN bruges derimod, når man henter værdierne for specifikke kolonner, der ligger inden for en liste. Beslutningen om at bruge er udelukkende baseret på hensigtsmæssighed, i. e. når du føler at brugen er passende.

Hvis en subquery bruges, og en null-værdi returneres, bliver hele sætningen NULL. Dette i virkeligheden peger på brugen af ​​EXISTS søgeord. Brugen af ​​IN-søgeordet finder sted, når en sammenligning af forskellige værdier i underkategorier er påkrævet. EXISTS-søgeordet bruges hovedsagelig til evaluering af sande eller falske udsagn, og IN anvendes i de fleste tilsvarende underudtalelser.

Generelt vil EXISTS være hurtigere end IN, årsagen er, at når EXISTS køres, har søgningen fundet et hit og vil gennemgå, om tilstanden har vist sig at være sand. Når du kører IN, samler den alle resultater fra underundersøgelsen og præsenterer dem til videre behandling, og processen tager et stykke tid.

Det er vigtigt at bemærke, at formuleringen af ​​forespørgslen skal ske rigtigt og kontrolleres, inden den køres. Undladelse af at sikre, at forespørgslen er korrekt, resulterer i EXISTS og IN, der præsenterer forskellige værdier, og dette er ikke målet for deres anvendelse i SQL-serveren. Optimeren skal altid være optimal, når du arbejder som den skal.

Sammenfatning

Problemløsning i TSQL udføres normalt med EXISTS og IN.

Der observeres små forskelle ved udrulning af EXISTS og IN, men optimering for hver skal give samme værdi.

Statistikken er en af ​​afgørende faktorer for, om EXISTS eller IN vil blive rullet ud.

Hardware i brug er også afgørende for at bestemme, om EXISTS eller IN skal implementeres.

Kørslen af ​​EXISTS vil være nyttig, når der er skal korrelere resultaterne af en given forespørgsel med en anden underforespørgsel.EXISTER er også meget almindeligt, når sande eller falske udsagn skal evalueres.

IN bruges almindeligt, når der er behov for at hente specifikke kolonner i en liste. Det bruges også almindeligt, når værdi sammenligning i underkategorier er påkrævet.

EXISTS er generelt hurtigere end IN, da det kører, finder et hit, og vurderer, om tilstanden har vist sig at være sand.

IN er langsommere, da det samler alle resultater fra underundersøgelsen og behandler det.

Selv om forskellige henrettelser er til stede, bør optimering give lignende resultater i EXISTS og IN.