1) Да , выбор с NOLOCKзавершится быстрее, чем обычный выбор.
2) Да , выбор с помощью NOLOCKпозволит другим запросам к выполненной таблице завершаться быстрее, чем обычный выбор.
С чего бы это?
NOLOCKобычно (в зависимости от вашего механизма БД) означает, что вы предоставляете мне свои данные, и мне все равно, в каком состоянии они находятся, и не беспокойтесь о том, чтобы держать их неподвижно, пока вы читаете их. Это одновременно быстрее, менее ресурсоемко и очень и очень опасно.
Вы должны быть предупреждены о том, что никогда не следует обновлять или выполнять какие-либо критичные для системы действия или требовать абсолютной корректности, используя данные, полученные из NOLOCKчтения. Вполне возможно, что эти данные содержат строки, которые были удалены во время выполнения запроса или были удалены в других сеансах, которые еще не завершены. Возможно, что эти данные включают строки, которые были частично обновлены. Возможно, что эти данные содержат записи, которые нарушают ограничения внешнего ключа. Возможно, что эти данные исключают строки, которые были добавлены в таблицу, но еще не были зафиксированы.
У вас действительно нет возможности узнать, в каком состоянии находятся данные.
Если вы пытаетесь получить такие данные, как количество строк или другие сводные данные, где допустимый предел погрешности приемлем, то NOLOCKэто хороший способ повысить производительность этих запросов и избежать их негативного влияния на производительность базы данных.
Всегда используйте NOLOCKподсказку с большой осторожностью и относитесь к любым данным, которые она возвращает, с подозрением.