Forskjeller mellom SQL eksisterer og inn Forskjellen mellom

Anonim

Sql Eksisterer vs I

Problemløsning i TSQL er tilgjengelig gjennom ulike metoder, og de ønskede resultatene kan ses ved hjelp av noen av dem. En av måtene sluttresultatene kan oppnås er ved bruk av IN og EXISTS-klausuler. Bruken av klausulene bidrar til filtrering av resultatsettet med henvisning til en underforespørsel som er tilgjengelig. Utførelsen av IN og EXISTS er litt forskjellig, og det er disse forskjellene som vurderes.

Det er ulike faktorer som avgjør om IN eller EXISTS vil bli utdelt. En av dem er datamengden tilgjengelig i tabellen. En stor mengde data resulterer i SQL-serveren som returnerer til bruk av en indekssøk, fremfor å bruke en indekssøk.

Forskjeller

Den oppgitte statistikken forteller også mye om utførelsesplanen som bør følges. Forskjellen vises når serveren har samlet nok statistikk til å ta en gyldig beslutning, og når det ikke er statistikk første gang. Maskinvaren i bruk bestemmer også om IN eller EXISTS skal brukes. Dette er i stor grad avhengig av antall CPU'er tilgjengelig.

EXISTS kjøres når det er behov for å matche resultatene av en spørring med en annen underforespørsel. IN brukes derimot når du henter verdiene til bestemte kolonner som ligger i en liste. Beslutningen om å bruke er utelukkende basert på hensiktsmessighet, i. e. når du føler at bruken er riktig.

Hvis en subquery brukes og en null-verdi returneres, blir hele setningen null. Dette peker i realiteten på bruken av EXISTS søkeord. Bruken av IN-søkeordet skjer når en sammenligning av ulike verdier i underkategorier er nødvendig. EXISTS søkeordet brukes hovedsakelig i evaluering av ekte eller falske setninger, og IN brukes i de fleste tilsvarende undersøkelsesoppgavene.

Generelt vil EXISTS bli raskere enn IN, grunnen er at når EXISTS kjøres, har søket funnet en hit og vil vurdere om tilstanden har vist seg å være sann. Når du kjører IN, samler det alle resultater fra underkvarteret og presenterer dem for videre behandling, og denne prosessen tar en stund.

Det er viktig å merke seg at frasering av spørringen må gjøres riktig og kontrolleres før den kjøres. Manglende å sikre at spørringen er riktig, resulterer i EXISTS og IN som presenterer forskjellige verdier, og dette er ikke målet for deres bruk i SQL-serveren. Optimalisatoren må alltid være optimal når du arbeider som det skal.

Sammendrag

Problemløsing i TSQL gjøres ofte med EXISTS og IN.

Lite forskjeller observeres når du ruller ut EXISTS og IN, men optimalisering for hver skal gi samme verdi.

Statistikk er en av determinanter for hvorvidt EXISTS eller IN vil bli utdelt.

Maskinvare i bruk er også avgjørende for å bestemme om EXISTS eller IN skal distribueres.

Kjøringen av EXISTS vil være nyttig når det er må korrelere resultatene av en gitt spørring med en annen underforespørsel.EXISTER er også svært vanlig når sanne eller falske utsagn trenger evaluering.

IN brukes ofte når det er behov for å hente bestemte kolonner i en liste. Også det brukes ofte når verdisammenligning i underkategorier er nødvendig.

EXISTS er generelt raskere enn IN når det kjører, finner en hit, og vurderer om tilstanden har vist seg å være sant

IN er langsommere da det samler alle resultater fra underprosessen og behandler det.

Selv om ulike henrettelser er til stede, bør optimalisering gi tilsvarende resultater i EXISTS og IN.