Różnice między Sql istnieje i jest

Sql Exists vs In

Rozwiązywanie problemów w TSQL jest dostępne różnymi metodami, a pożądane wyniki można zobaczyć za pomocą dowolnej z nich. Jednym ze sposobów osiągnięcia wyników końcowych jest zastosowanie klauzul IN i EXISTS. Zastosowanie klauzul pomaga filtrować zestaw wyników w odniesieniu do dostępnego podzapytania. Wykonanie IN i EXISTS nieznacznie się różni i to te różnice są oceniane.

Istnieje wiele czynników, które określają, czy IN lub EXISTS zostaną wprowadzone. Jednym z nich jest ilość danych dostępna w tabeli. Ogromna ilość danych powoduje, że serwer SQL powraca do korzystania ze skanowania indeksu zamiast korzystania z wyszukiwania indeksu.

Różnice

Podane statystyki mówią również wiele o planie wykonania, którego należy przestrzegać. Różnica jest pokazywana, gdy serwer zgromadził wystarczającą liczbę statystyk, aby podjąć prawidłową decyzję, i gdy nie ma statystyk po raz pierwszy. Używany sprzęt określa również, czy zostaną zastosowane IN czy EXISTS. Zależy to w dużej mierze od liczby dostępnych procesorów.

ISTNIEJE są uruchamiane, gdy istnieje potrzeba dopasowania wyników zapytania do innego podzapytania. Z drugiej strony IN służy do pobierania wartości określonych kolumn, które znajdują się na liście. Decyzja, którego użyć, zależy wyłącznie od stosowności, tj. Kiedy uważasz, że jego użycie jest właściwe.

W przypadku użycia podzapytania i zwrócenia wartości zerowej cała instrukcja staje się NULL. To w efekcie wskazuje na użycie słowa kluczowego EXISTS. Zastosowanie słowa kluczowego IN ma miejsce, gdy wymagane jest porównanie różnych wartości w podkwerendach. Słowo kluczowe EXISTS jest używane głównie do oceny prawdziwych lub fałszywych instrukcji, a IN jest używane w większości odpowiednich instrukcji podkwerend.

Ogólnie rzecz biorąc, EXISTS będzie szybsze niż IN, ponieważ po uruchomieniu EXISTS wyszukiwanie znalazło trafienie i sprawdza, czy warunek okazał się spełniony. Podczas uruchamiania IN zbiera wszystkie wyniki z podzapytania i przedstawia je do dalszego przetwarzania, a proces ten zajmuje trochę czasu.

Należy zauważyć, że frazowanie zapytania musi być wykonane poprawnie i sprawdzone przed uruchomieniem. Niezapewnienie, że zapytanie jest poprawne, zawiera wyniki EXISTS i IN przedstawiające różne wartości i nie jest to celem ich użycia w serwerze SQL. Optymalizator musi zawsze być optymalny, gdy działa tak, jak powinien.

streszczenie

Rozwiązywanie problemów w TSQL jest zwykle wykonywane za pomocą EXISTS i IN.

Nieznaczne różnice obserwuje się przy wdrażaniu EXISTS i IN, chociaż optymalizacja dla każdego powinna dać tę samą wartość.

Statystyka jest jednym z czynników decydujących o tym, czy EXISTS czy IN zostaną wprowadzone

Używany sprzęt ma również decydujące znaczenie dla określenia, czy należy zastosować EXISTS, czy IN

Uruchamianie EXISTS będzie przydatne, gdy zajdzie potrzeba skorelowania wyników danego zapytania z innym podzapytaniem. ISTNIEJE jest również bardzo częste, gdy prawdziwe lub fałszywe stwierdzenia wymagają oceny.

IN jest powszechnie używany, gdy zachodzi potrzeba pobrania określonych kolumn z listy. Jest również powszechnie stosowany, gdy wymagane jest porównanie wartości w podzapytaniach.

EXISTS jest generalnie szybszy niż IN, ponieważ działa, znajduje trafienie i sprawdza, czy warunek okazał się spełniony

IN jest wolniejszy, ponieważ zbiera wszystkie wyniki z podzapytania i przetwarza je.

Chociaż istnieją różne wykonania, optymalizacja powinna dać podobne wyniki w EXISTS i IN.