Eroja Sql: n välillä on olemassa

Anonim

Sql Exists vs In

TSQL: n ongelmanratkaisut ovat käytettävissä eri menetelmien avulla ja halutut tulokset voidaan nähdä käyttämällä jotain niistä. Eräs keino lopputulosten saavuttamisessa on IN- ja EXISTS-lausekkeiden käyttö. Lausekkeiden käyttö auttaa tuloksen asettamista suodattamalla viitaten saatavilla olevaan alikyselyyn. IN: n ja EXISTS: n toteutus on hieman erilainen, ja nämä eroja arvioidaan.

On olemassa useita tekijöitä, jotka määräävät, onko IN tai EXISTS irrotettava. Yksi niistä on taulukossa käytettävissä oleva tieto. Suuri määrä tietoa tuloksena SQL-palvelimessa palaa indeksointikanavien käyttämiseen pikemminkin kuin indeksikuvan käyttämistä.

erot

Tilastoista kerrotaan myös paljon täytäntöönpanosuunnitelmasta, jota on noudatettava. Ero näkyy, kun palvelin on kerännyt tarpeeksi tilastoja tekemään kelvollinen päätös ja kun tilastoja ei ole ensimmäistä kertaa. Käytettävissä oleva laitteisto myös määrittää, käytetäänkö IN tai EXISTS. Tämä on pitkälti riippuvainen käytettävissä olevien keskusyksiköiden lukumäärästä.

EXISTS suoritetaan, kun kyselyn tulokset on sovitettava toisen alikyselyn kanssa. IN käytetään toisaalta, kun haetaan tiettyjen sarakkeiden arvoja, jotka sijaitsevat luettelossa. Päätös käytettäväksi perustuu yksinomaan sopivuuteen, eli kun sen käyttö on tarkoituksenmukaista.

Jos subqueryä käytetään ja nolla-arvo palautetaan, koko lauseke muuttuu NULL: ksi. Tämä viittaa käytännössä EXISTS-avainsanan käyttöön. IN-avainsanan käyttö tapahtuu, kun eri arvojen vertaaminen alikyselyihin edellyttää. EXISTS-avainsanaa käytetään pääasiassa todellisten tai väärien lausuntojen arvioinnissa ja IN käytetään useimmissa vastaaviin subquery-lausuntoihin.

Yleensä EXISTS on nopeampi kuin IN, koska EXISTS-suorituksen aikana haku on löytänyt osuman ja tarkistaa, onko ehto osoittautunut totta. Kun käynnistät IN: n, se kerää kaikki tulokset alikyselystä ja esittää ne jatkokäsittelyä varten, ja tämä prosessi kestää jonkin aikaa.

On tärkeää huomata, että kyselyn kirjoittaminen on tehtävä oikein ja tarkistettava ennen sen suorittamista. Jos kysely ei ole oikein, EXISTS ja IN näyttävät eri arvoja, eikä tämä ole niiden käyttötarkoitus SQL-palvelimessa. Optimoijan on aina oltava optimaalinen, kun se toimii kuten pitäisi.

Yhteenveto

TSQL: n ongelmanratkaisua tehdään tavallisesti EXISTS ja IN.

Pieniä eroja havaitaan EXISTS ja IN, kun optimointi kullakin on sama arvo.

Tilastot ovat yksi tekijöistä siitä, onko EXISTS tai IN avattu

Käytettävissä oleva laitteisto on myös kriittinen määritettäessä, onko EXISTS tai IN käyttöön otettava

EXISTS-ohjelman käyttö on hyödyllistä, kun on tarpeen korjata tietyn kyselyn tulokset toiseen alikyselyyn. EXISTS on myös hyvin yleinen, kun tosi- tai vääriä lausuntoja on arvioitava.

IN käytetään yleisesti, kun on tarpeen hakea tiettyjä sarakkeita luettelossa. Myös sitä käytetään yleisesti, kun arvon vertailu alikyselyihin tarvitaan.

EXISTS on yleensä nopeampi kuin IN, kun se kulkee, löytää osuman, ja tarkistaa, onko ehto osoittautunut totta

IN on hitaampi, koska se kerää kaikki tulokset alikyselystä ja käsittelee sen.

Vaikka erilaiset teloitukset ovat läsnä, optimoinnin pitäisi antaa samanlaisia ​​tuloksia EXISTS ja IN.