2015-12-21 3 views
-1

Что такое мертвые блокировки и как я могу обращаться с ними на сервере sql. Например, когда пользователи перегружены, мой сервер sql дает ответы на них, но некоторые из этих запросов нарушены. Как я могу заставить, когда моя база данных требует много запросов за короткое время. например: 8 выделенных серверов одновременно принимают 20000-40000 одновременных пользователейУровень изоляции и блокировки сервера sql

+1

Если вы не знаете, что такое тупик, вы должны начать [здесь] (https://technet.microsoft.com/en-us/library/ms177433 (v = sql.105) .aspx). Это не простая тема, которая может быть объяснена в вопросе; он слишком широк. Суть в том, что вы можете кодировать, чтобы сделать тупики менее распространенными, но вы можете по существу * никогда не полностью их устранить. Ваше приложение просто должно быть в состоянии справиться с ними, когда они произойдут. –

+1

Краткий ответ: попробуйте выделить моментальный снимок: http://www.brentozar.com/archive/2013/01/implementing-snapshot-or-read-committed-snapshot-isolation-in-sql-server-a-guide/. Однако этот материал сложный. Вы должны сначала выделить, являются ли конкретные запросы причиной взаимоблокировок. И вот ссылка на это: http://www.brentozar.com/archive/2014/06/capturing-deadlock-information/. Я просто размещаю ссылки, потому что вам нужно их читать и понимать, а затем задавать конкретный вопрос. –

ответ

1

Это длинный отформатированный комментарий. В некоторых моих приложениях ColdFusion я применил следующий подход к обработке взаимоблокировок.

  • положить тег cfquery в функцию, которая возвращает объект запроса ColdFusion.
  • Попытка вызвать эту функцию с помощью попытаться/поймать максимум 3 раза
  • Throw ошибку, если до сих пор безуспешным

Этот подход не ограничивается ColdFusion. Он может быть применен к .net, php, java и даже tsql.

Кроме того, он не устранит проблему взаимоблокировки. Тем не менее, это уменьшит количество случаев, когда это произойдет.

 Смежные вопросы

  • Нет связанных вопросов^_^