Разликите между Sql съществуват и в

Sql съществува срещу In

Решаването на проблеми в TSQL е достъпно чрез различни методи и желаните резултати могат да се видят с помощта на някой от тях. Един от начините за постигане на крайните резултати е чрез използване на клаузи IN и EXISTS. Използването на клаузите помага за филтриране на набора от резултати с позоваване на подзапитване, което е на разположение. Изпълнението на IN и EXISTS леко се различава и именно тези разлики се оценяват.

Има различни фактори, които определят дали IN или EXISTS ще бъдат въведени или не. Един от тях е количеството данни, налично в таблицата. Огромно количество данни води до това, че SQL сървърът се връща към използване на индексирано сканиране, а не използване на търсене на индекс.

Различията

Дадената статистика също говори много за плана за изпълнение, който трябва да се спазва. Разликата се показва, когато сървърът е натрупал достатъчно статистически данни, за да вземе валидно решение и когато няма статистика за първи път. Използваният хардуер също определя дали IN или EXISTS ще бъдат използвани. Това до голяма степен зависи от броя на наличните процесори.

EXISTS се изпълняват, когато е необходимо да се съпоставят резултатите от заявка с друга подзапитване. IN от друга страна се използва при извличане на стойностите на конкретни колони, които се намират в списък. Решението за това, което да използвате, се основава единствено на уместност, т.е. когато смятате, че използването му е подходящо.

В случай, че се използва подзапитване и се върне нулева стойност, цялото изявление става NULL. Това на практика сочи използването на ключова дума EXISTS. Използването на ключовата дума IN се появява, когато се изисква сравнение на различни стойности в подзапитите. Ключовата дума EXISTS се използва главно при оценка на верни или неверни изявления, а IN се използва в повечето съответни заявки на подзапитване.

По принцип EXISTS ще бъде по-бърз от IN, като причината е, че когато се изпълняват EXISTS, търсенето е намерило хит и ще преглежда дали състоянието се е оказало вярно. Когато работи IN, той събира всички резултати от подзапитването и ги представя за по-нататъшна обработка, като този процес отнема известно време.

Важно е да се отбележи, че формулирането на заявката трябва да се извърши правилно и да се провери преди да се изпълни. Неуспехът да се гарантира, че заявката е правилна, за да съществуват EXISTS и IN с различни стойности и това не е целта на тяхното използване в SQL сървър. Оптимизаторът винаги трябва да е оптимален, когато работи както трябва.

резюме

Решаването на проблеми в TSQL обикновено се прави с EXISTS и IN.

Леки разлики се наблюдават при разгръщане на EXISTS и IN, въпреки че оптимизацията за всеки трябва да даде една и съща стойност.

Статистиката е един от определящите за това дали EXISTS или IN ще бъдат въведени

Използваният хардуер също е от решаващо значение за определяне дали EXISTS или IN трябва да бъдат внедрени

Изпълнението на EXISTS ще бъде полезно, когато има нужда да се съпоставят резултатите от дадена заявка с друго подзапитване. EXISTS също е много често, когато верни или неверни твърдения се нуждаят от оценка.

IN обикновено се използва, когато има нужда от извличане на конкретни колони в списък. Също така той обикновено се използва, когато се изисква сравнение на стойности в подзапитите.

EXISTS обикновено е по-бърз от IN, докато тече, намира удар и преглежда дали състоянието се е оказало вярно

IN е по-бавен, тъй като събира всички резултати от подзапитването и го обработва.

Въпреки че съществуват различни екзекуции, оптимизацията трябва да даде подобни резултати в EXISTS и IN.