SQL существует производительность
-
12-10-2019 - |
Вопрос
Я понимаю, что SQL EXISTS
Проверяет наличие строк, однако оценивает ли он все выражение? Так, например, что -то вроде этого:
IF EXISTS (SELECT TOP 1 1 FROM table WITH (NOLOCK))
BEGIN
...
END
Будьте быстрее, чем что -то вроде этого:
IF EXISTS (SELECT 1 FROM table WITH (NOLOCK))
BEGIN
...
END
Решение
Оба они должны работать точно так же. SQL Server учитывает, что EXISTS
является короткой операцией и не оценивает результат возврата, просто проверьте, чтобы увидеть, есть ли там ЯВЛЯЕТСЯ результат возврата!
Другие советы
Существует остановка после первого удара, потому что тогда выражение оценивается в True, поэтому верхняя (1) -чатка не нужна.
Нет, это не так.
SQL Server
Использование TOP
В плане оценить EXISTS
.
Заявления генерируют идентичные планы запросов, поэтому нет никакой разницы. Второй пример легче читать, по моему мнению.
Не связан с StackOverflow