Sql existuje vs
Řešení problémů v TSQL je k dispozici prostřednictvím různých metod a požadované výsledky lze vidět pomocí kterékoli z nich. Jedním ze způsobů, jak dosáhnout konečných výsledků, je použití klauzulí IN a EXISTS. Použití těchto klauzí pomáhá filtraci sady výsledků s odkazem na poddotaz, který je k dispozici. Provedení IN a EXISTS se mírně liší a vyhodnocují se právě tyto rozdíly.
Existují různé faktory, které určují, zda bude IN nebo EXISTS zavedeno. Jedním z nich je množství dat v tabulce. Obrovské množství dat má za následek, že se SQL server vrací k použití skenování indexu, spíše než pomocí hledání indexu.
Rozdíly
Uvedené statistiky také hodně říkají o plánu provádění, který by měl být dodržován. Rozdíl se zobrazí, když server nashromáždil dostatek statistik, aby mohl učinit platné rozhodnutí, a když neexistují žádné statistiky poprvé. Použitý hardware také určuje, zda bude použit IN nebo EXISTS. To do značné míry závisí na počtu dostupných CPU.
EXISTY jsou spuštěny, když je třeba porovnat výsledky dotazu s jiným poddotazem. IN se naopak používá při načítání hodnot konkrétních sloupců, které leží v seznamu. Rozhodnutí, které použít, je založeno pouze na vhodnosti, tj. Když máte pocit, že jeho použití je vhodné.
V případě použití poddotazu a vrácení nulové hodnoty se celý příkaz stane NULL. To ve skutečnosti ukazuje na použití klíčového slova EXISTY. Použití klíčového slova IN nastane, když je vyžadováno porovnání různých hodnot v poddotazech. Klíčové slovo EXISTY se používá hlavně při hodnocení pravdivých nebo nepravdivých příkazů a IN se používá ve většině odpovídajících příkazů dílčích dotazů.
Obecně platí, že EXISTS bude rychlejší než IN, důvodem je, že když jsou EXISTY spuštěny, vyhledávání našlo zásah a bude přezkoumávat, zda se podmínka ukázala jako pravdivá. Při spuštění IN shromažďuje všechny výsledky z poddotazu a předkládá je pro další zpracování a tento proces chvíli trvá.
Je důležité si uvědomit, že formulace dotazu musí být provedena správně a před spuštěním musí být zkontrolována. Pokud není zajištěno, že dotaz je správný, EXISTY a IN prezentují různé hodnoty, a to není cílem jejich použití v SQL serveru. Optimalizátor musí být vždy optimální, když pracuje tak, jak má.
souhrn
Řešení problémů v TSQL se běžně provádí pomocí EXISTS a IN.
Mírné rozdíly jsou pozorovány při zavádění EXISTOVAT a IN, i když optimalizace pro každý by měla dát stejnou hodnotu.
Statistiky jsou jedním z určujících faktorů toho, zda EXISTY nebo IN budou zavedeny
Používaný hardware je také rozhodující při určování, zda EXISTY nebo IN mají být nasazeny
Spuštění EXISTU bude užitečné, pokud je potřeba porovnat výsledky daného dotazu s jiným dílčím dotazem. EXISTOVÁNÍ je také velmi běžné, když je třeba vyhodnotit pravdivá nebo nepravdivá tvrzení.
IN se běžně používá, když je potřeba načíst konkrétní sloupce v seznamu. Rovněž se běžně používá, když je vyžadováno porovnání hodnot v poddotazech.
EXISTS je zpravidla rychlejší než IN, když běží, najde zásah a zkontroluje, zda se tento stav ukázal jako pravdivý
IN je pomalejší, protože shromažďuje všechny výsledky z poddotazu a zpracovává jej.
Přestože jsou přítomna různá provedení, optimalizace by měla přinést podobné výsledky v EXISTS a IN.