Может ли кто-нибудь с опытом DEADLOCK просветить меня?Использование NOLOCK для чтения одной статической строки. Какой вред?
Я читал, что это может привести к повреждению файла журнала - это возможно? Я думаю, что MS никогда этого не сделает. Также, если «некоторые ситуации», как и мои, в порядке с DEADLOCK, почему бы не использовать его?
У меня нет наборов данных, таблицы возврата (как и другие сообщения в переполнении стека). У меня есть один оператор SQL с идентификатором select, который возвращает только одну строку:
sqlstr = "SELECT Parameter1 FROM Companies WITH (NOLOCK) WHERE ID = 25
Кроме того, этот параметр не изменяется. Но поскольку это приложение aspnet с большой нагрузкой (а не веб-сайт), и я запускаю этот вид запроса снова и снова, каждое чтение SQL вызывает блокировку на SQL-сервере. Если возможно, я предпочел бы избежать этого.
Каждое сообщение на этом сайте содержит несколько записей, записей, пакостных чтений. Я ничего не мог найти о «чтении одной записи, которая не меняется все время».
Любое мнение эксперта, пожалуйста?
Если вы только когда-нибудь прочтете одну строку с 'ID', которая никогда не изменится, почему бы не создать отфильтрованный индекс? Затем вы будете читать индекс вместо таблицы. –
Почему бы не использовать SqlCacheDependency в приложении, чтобы он не ударил ваш db так много? – JiggsJedi
Какой вред? В чем польза? Если строка статична, она не будет заблокирована в любом случае, вероятно, и SQL Server также будет пропускать блокировки на уровне строк S, если страница не содержит никаких незафиксированных изменений. –