Какви са предимствата и недостатъците на присъединяването или подзаявката?

...

Заявките към базата данни извличат конкретна информация от базата данни.

Подзаявката е заявка в друга заявка. Една подзаявка може също да съдържа друга подзаявка. Казва се, че това са "вложени" подзаявки. Обединяване е, когато две или повече таблици са посочени в клаузата "От" на заявката. Различните машини за бази данни могат да оптимизират подзаявките и присъединяванията по различен начин. Например, оптимизаторът на DB2 ще трансформира подзаявка в присъединяване, ако са изпълнени определени критерии. В някои случаи присъединяването дава по-добра производителност от подзаявка.

Какво прави подзаявка

Подзаявката е израз "SELECT" в рамките на клаузата "WHERE" или "HAVING" на външен израз "INSERT", "UPDATE", "MERGE" или "DELETE". Подзаявката също се нарича "вътрешна заявка" или "вътрешен избор". Подзаявката може да има клауза "FROM" с една или повече таблици и по избор може да има клауза "WHERE", "GROUP BY" или "HAVING". Той винаги е затворен в скоби.

Видео на деня

Предимства и недостатъци на подзаявките

Подзаявките са изгодни, защото структурират заявката, за да изолират всяка част от израза, изпълнява същата операция, която обикновено изисква сложни съединения и съединения и е по-лесна за изпълнение Прочети. Подзаявките дори бяха в основата на името „Структуриран език за заявки“ (SQL) поради тяхната лесно четлива структура. Недостатък е, че не можете да модифицирате таблица и да избирате от същата таблица в рамките на подзаявка в същия SQL израз. Изпълнението на подзаявките също може да отнеме повече време от присъединяването поради начина, по който оптимизаторът на базата данни ги обработва.

Какво прави присъединяването

Повечето подзаявки могат да бъдат пренаписани като обединения, а повечето обединения могат да бъдат пренаписани като подзаявки. Съединяването дефинира две или повече таблици чрез свързана колона. Таблиците обикновено се обединяват на първични и външни ключове. Например, таблица на служителите може да има първичен ключ на колона с идентификационен номер на служител, докато таблицата с график също има колона с идентификационен номер на служител, която е външен ключ към таблицата на служителите. SQL присъединяването може да бъде записано като "WHERE employee.empid = timesheet.empid" или "FROM Employee JOIN timesheet ON (employee.empid = timesheet.empid)".

Предимства и недостатъци на съединенията

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