Різниця між вкладеним запитом, корельованим запитом і операцією приєднання. У вкладеному запиті запит записується всередині іншого запиту, а результат внутрішнього запиту використовується для виконання зовнішнього запиту. У корельованому запиті запит вкладено в інший запит, а внутрішній запит використовує значення із зовнішнього запиту. 28 серпня 2023 р.
У звичайному вкладеному підзапиті внутрішній запит SELECT виконується першим і виконується один раз, повертаючи значення, які використовуватимуться в основному запиті. Проте корельований підзапит виконується один раз для кожного рядка-кандидата, який розглядається зовнішнім запитом. Іншими словами, внутрішній запит керується зовнішнім запитом.
"Корельовані підзапити» працюють швидше, ніж звичайні об’єднання. Але в іншому документі було згадано, що будь-які підзапити, включаючи «Споставлені підзапити», завжди реалізуються оптимізатором як внутрішні об’єднання або об’єднання продуктів.
Корельований підзапит — це підзапит, який містить посилання на таблицю, яка також відображається у зовнішньому запиті. Наприклад: SELECT * FROM t1 WHERE column1 = ANY (SELECT column1 FROM t2 WHERE t2. стовпець2 = t1.
Крім того, простий підзапит оцінюється один раз у всьому операторі. Корельований підзапит обчислюється в циклах — один раз для кожного рядка, згенерованого набором даних. Це означає, що додавання корельованих підзапитів сповільнить продуктивність вашого запиту, оскільки ваш запит знову і знову перераховує інформацію.
Слід використовувати лише корельовані підзапити для питань із негативними даними або інших питань щодо даних, де корельований підзапит є єдиним способом відповісти на нього.
Переваги використання корельованих підзапитів Ось деякі з ключових переваг використання корельованих підзапитів у SQL Server: Уникайте складних об’єднань: корельовані підзапити можна використовувати як заміну складним операціям об’єднання. Це може допомогти спростити запити та покращити читабельність.