08.02.2011, 17:55 | #1 |
Участник
|
Отключение эскалации блокировок в MSSQL 2008
Узнал, что в MSSQL 2008 оказывается сделали возможность отключения эскалации блокировок:
ALTER TABLE MyTable SET (LOCK_ESCALATION = DISABLE); помню, что раньше эскалация была большой бедой при активном использовании Аксапты сразу многими пользователями. Просто интересно - кто нибудь пробовал эту "фичу" на MSSQL 2008 и какие плюсы и минусы с этого поимели? |
|
08.02.2011, 18:31 | #2 |
Участник
|
Видел где-то обсуждение на SQL.RU
Там обсуждали хинты, позволяющие отключать эскалацию блокировок (для более старых версий сиквела) и со ссылкой на какую то официальную бумагу не рекомендовали это делать. Типа мол, если памяти и ресурсов хватает то сиквел и так не будет эскалацию делать. А если искусственно запретить, то эскалации не будет, но может в другом месте поплохеть. Но это опять же все на уровне ОБС. |
|
09.02.2011, 09:25 | #3 |
Участник
|
BOL -
Цитата:
Флаги трассировки используются для временной установки определенных характеристик сервера или отключения определенного режима. ...
1211 - Отключает все укрупнения блокировки. Компонент SQL Server 2005 Database Engine не будет повышать уровень блокировки с блокировки строки или страницы до блокировки таблицы. При использовании этого флага трассировки может быть создано излишнее количество блокировок. Это может привести к снижению производительности компонента Database Engine или вызвать ошибки 1204 (невозможность выделить блокированный ресурс) из-за недостатка памяти. Дополнительные сведения см. в разделе Укрупнение блокировки (компонент Database Engine). 1224 - Отключает укрупнение блокировки отдельных инструкций и указывает, что компонент Database Engine должен функционировать, как будто параметр locks хранимой процедуры sp_configure был установлен в значение 0. Компонент Database Engine повышает уровень блокировки с блокировки строки или страницы до блокировки таблицы, только если объем памяти, используемый блокированными объектами, превышает 40 процентов от памяти, используемой компонентом Database Engine, без учета памяти AWE. Если установлены оба флага трассировки, то флаг 1224 имеет преимущество над флагом 1211. Флаги трассировки устанавливаются и снимаются с помощью любого из следующих методов: - Использование команд DBCC TRACEON и DBCC TRACEOFF. - Использование параметра запуска /T для указания необходимости установки флага трассировки при запуске. Дополнительные сведения см. в разделе Использование параметров запуска службы SQL Server. |
|
09.02.2011, 09:43 | #4 |
Участник
|
Про 1211 и 1224 все знают, это использовали до MSSQL 2008, а теперь отключение эскалации типа "стандартная" команда:
ALTER TABLE MyTable SET (LOCK_ESCALATION = DISABLE); пробовал кто-нибудь включать, например, на таблицах проводок? |
|
09.02.2011, 09:45 | #5 |
----------------
|
UNRW зачем решать несуществующую проблему неизвестным способом?
|
|
09.02.2011, 10:07 | #6 |
Участник
|
Wamr, читай внимательно, суть вопроса не в решении проблемы
|
|
Теги |
sql server, блокировки |
|
|