Сравнение производительности между SQL SELECT NULL и SELECT 1 - PullRequest
4 голосов
/ 02 февраля 2011

Какой из них лучше для производительности

IF EXISTS(Select null from table)

или

IF EXISTS(Select 1 from table)

?

1 Ответ

14 голосов
/ 02 февраля 2011

Оба выполняют одно и то же, потому что предложение SELECT в EXISTS никогда не оценивается.Вы можете проверить, используя:

... EXISTS(SELECT 1/0 FROM TABLE) 

Это должно вызвать ошибку деления на ноль, но не будет.

Лично я предпочитаю использовать NULL, потому что очевидно, что в таблице нет ссылок на ничего,так что это более заметно другим.Выбор значения, такого как INT номер 1 во втором примере, может привести к предположениям о том, что происходит, если вы не знакомы с предложением EXISTS.

...