Rozdiely medzi Sql existuje a

Sql existuje vs

Riešenie problémov v TSQL je dostupné rôznymi spôsobmi a požadované výsledky je možné vidieť pri použití ktorejkoľvek z nich. Jedným zo spôsobov, ako možno dosiahnuť konečné výsledky, je použitie doložiek IN a EXISTS. Použitie týchto klauzúl pomáha filtrovať sadu výsledkov s odkazom na poddotaz, ktorý je k dispozícii. Realizácia IN a EXISTS sa mierne líši a hodnotia sa práve tieto rozdiely.

Existujú rôzne faktory, ktoré určujú, či sa bude zavádzať IN alebo EXISTS. Jedným z nich je množstvo údajov dostupné v tabuľke. Obrovské množstvo údajov vedie k tomu, že server SQL sa vracia k použitiu skenovania indexov, a nie pomocou vyhľadávania indexov.

rozdiely

Uvedené štatistiky tiež veľa informujú o pláne vykonávania, ktorý by sa mal dodržiavať. Rozdiel sa zobrazuje, keď server nazhromaždil dostatok štatistík na vykonanie platného rozhodnutia a keď neexistujú žiadne štatistiky prvýkrát. Použitý hardvér tiež určuje, či sa použije IN alebo EXISTS. To do značnej miery závisí od počtu dostupných CPU.

EXISTUJE sa, keď je potrebné porovnať výsledky dotazu s iným poddotazom. IN sa naopak používa pri získavaní hodnôt konkrétnych stĺpcov, ktoré sú v zozname. Rozhodnutie, ktoré použiť, sa zakladá výlučne na primeranosti, t. J. Keď si myslíte, že jeho použitie je vhodné.

V prípade, že sa použije poddotaz a vráti sa nulová hodnota, celý príkaz sa stane NULL. To v skutočnosti poukazuje na použitie kľúčového slova EXISTY. Použitie kľúčového slova IN nastane, keď sa vyžaduje porovnanie rôznych hodnôt v poddotazoch. Kľúčové slovo EXISTY sa používa hlavne na vyhodnotenie pravdivých alebo nepravdivých príkazov a IN sa používa vo väčšine zodpovedajúcich príkazových príkazov.

Všeobecne platí, že EXISTY budú rýchlejšie ako IN, dôvodom je to, že keď sú EXISTY spustené, vyhľadávanie našlo prístup a bude skúmať, či sa tento stav ukázal ako pravdivý. Pri spustení IN zhromažďuje všetky výsledky z poddotazu a predkladá ich na ďalšie spracovanie a tento proces chvíľu trvá.

Je dôležité poznamenať, že formulácia dotazu musí byť vykonaná správne a pred spustením musí byť skontrolovaná. Ak sa nezabezpečí správnosť výsledkov dotazu, EXISTS a IN predstavujú rôzne hodnoty, a to nie je cieľom ich použitia v SQL serveri. Optimalizátor musí byť vždy optimálny pri práci tak, ako má.

zhrnutie

Riešenie problémov v TSQL sa bežne robí pomocou EXISTS a IN.

Mierne rozdiely sa pozorujú pri zavádzaní EXISTUJÚCICH a IN, hoci optimalizácia pre každý by mala dať rovnakú hodnotu.

Štatistika je jedným z determinantov toho, či bude EXISTOVANÉ alebo IN zavedené

Používaný hardvér je tiež rozhodujúci pri určovaní, či sa má EXISTS alebo IN nasadiť

Spustenie EXISTU bude užitočné, keď bude potrebné korelovať výsledky daného dotazu s iným čiastkovým dopytom. EXISTUJE sa tiež veľmi často, keď je potrebné vyhodnotiť pravdivé alebo nepravdivé tvrdenia.

IN sa bežne používa, keď je potrebné získať konkrétne stĺpce v zozname. Tiež sa bežne používa, keď sa vyžaduje porovnávanie hodnôt v poddotazoch.

EXISTS je spravidla rýchlejší ako IN, keď beží, nájde prístup a preverí, či sa tento stav ukázal ako pravdivý

IN je pomalší, pretože zhromažďuje všetky výsledky z poddotazu a spracováva ho.

Aj keď sú prítomné rôzne popravy, optimalizácia by mala priniesť podobné výsledky v EXISTOVANÝCH a IN.