Возможно, вы могли бы снизить уровень изоляции транзакции для некоторых / всех операций только для чтения, выполняемых одним или обоими приложениями интрасети и вашими запросами SSMS. Но если вы сделаете это, вы должны быть осторожны с такими вещами, как грязное чтение (когда вы читаете одну или несколько строк из таблицы, и впоследствии эти строки оказываются не зафиксированными их собственной транзакцией).
Нет никаких настроек уровня приоритета для соединений в SQL Server (кроме того, что, как вы заметили, добровольно становитесь жертвой взаимоблокировки). Настройки уровня ОС (например, приоритеты процессов) не будут влиять на SQL Server - все, что его волнует, - это блокировки и совместимость этих блокировок между различными соединениями.
Вы можете использовать оператор SET TRANSACTION ISOLATION LEVEL
, чтобы изменить изоляцию на уровне соединения, или вы можете использовать подсказки блокировки (например, WITH NOLOCK
) для отдельных таблиц в выражениях иметь более детальный контроль над тем, какие блокировки принимаются.
Обратите внимание, что если вы выполняете операторы DML (например, INSERT или DELETE), они все равно должны будут принимать эксклюзивные блокировки, поэтому, если ваше приложение интрасети желает запрашивать те же таблицы, оно должно ждать DML заявление, чтобы закончить, или это должно быть изменено, чтобы отразить его изоляцию. Нет средств для определения поведения других соединений из ваших собственных запросов - они должны выбирать свои собственные настройки изоляции.