Чтобы начать с конца - и извините, 20 или более одновременных подключений ничего не значат с точки зрения нагрузки - вы должны ТОЛЬКО отключить эскалацию блокировки, если вам это нужно. то есть, после определения вашей проблемы это решается. Так просто. Все остальное - это чрезмерная оптимизация - и борьба с интеллектом в SQL Server, который довольно неплохо справляется.
1: я не знаю, за редкими редкими случаями.
2: насколько мне известно, не задокументировано. Любой ответ может измениться с исправлением.
3: Преднамеренные замки - это в основном подготовка. Они прекращают выделять замки, которые не позволят их намерению материализоваться. Тем не менее, если ваша таблица минимальна ... вы редко будете видеть блокировку на уровне таблицы.
У вас есть конкретный сценарий для ваших вопросов? По сути - это кажется, и извините, если это не так, как начинающий, боящийся, что вся блокировка делает с его приложением, даже не задумываясь о том, как на самом деле работает сервер SQL. В общем, замки случаются так, как они тебе нравятся. Иногда отсутствие блокировки имеет смысл, обычно имеет смысл использовать уровень изоляции транзакций riht, и обычно вы полностью игнорируете детали блокировки, потому что они не имеют значения. ЕДИНСТВЕННАЯ ситуация, в которой вы столкнетесь с проблемами, - это взаимоблокировки, которые исправляются путем изменения порядка доступа.
Кроме того, блокировки просто работают, и вы доверяете SQL Server, чтобы он работал правильно.