Статус: Активный участник
Группы: Участники
Зарегистрирован: 04.08.2009(UTC) Сообщений: 215 Откуда: Msk
|
When a deadlock occurs, by default, SQL Server choose a deadlock "victim" by identifying which of the two processes will use the least amount of resources to rollback, and then returns error message 1205. But what if you don't like default behavior? Can you change it? Yes, you can, by using the following command: SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var } WHERE: Low tells SQL Server that the current session should be the preferred deadlock victim, not the session that incurs the least amount of rollback resources. The standard deadlock error message 1205 is returned. Normal tells SQL Server to use the default deadlock method. @deadlock_var is a character variable specifying which deadlock method you want to use. Specify "3" for low, or "6" for normal. This command is set a runtime for a specified user connection
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.06.2008(UTC) Сообщений: 145
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Ну так вроде эта команда SET DEADLOCK_PRIORITY распространяется на текущую сессию (т.е. только на запросы, выполняемые мной). Если поставлю LOW - то в случае, если мой запрос попадет в дедлок - SQL его прибъет, если NORMAL - то SQL сам будет выбирать, кого убить. Так что она ничем не поможет.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 04.08.2009(UTC) Сообщений: 215 Откуда: Msk
|
Сколько операторов я пробовал 20 потоков при тестировании но 2005
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.06.2008(UTC) Сообщений: 145
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Порядка 20 подключений. Но у нас и версия УЦ старее. Может в той, что работает с SQL 2005 что-то поменяно.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 04.08.2009(UTC) Сообщений: 215 Откуда: Msk
|
Только переход на другую сборку, как вариант 1.5 должен быть сертифицирован в ближайшее время, уйти на него
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 18.06.2008(UTC) Сообщений: 145
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
А конкретные сроки окончания сертификации можете сказать?
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.12.2007(UTC) Сообщений: 152 Откуда: Екатеринбург
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 1 раз в 1 постах
|
Мы поисследовали, что больше всего грузит базу. Для себя отметили следующие проблемы (в порядке приоритета): 1. Поиск сертификатов по параметрам по подстроке. Проблема решается использованием поиска хотя бы по началу строки. Будем по максимуму использовать именно такой способ. 2. Применение запроса, содержащего "DECLARE @UserSubjectTmp TABLE (RdnOID VARCHAR(30) NOT NULL, RdnIndex INT NOT NULL, RdnValue VARCHAR(850) NOT NULL) INSERT INTO @UserSubjectTmp VALUES (@P1,@P2,@P3) <....>". Как я понял, он формируется динамически, вероятно, для проверки существования других пользователей с теми же параметрами. Мне удалось по аналогии составить запрос, который делает то же самое и при этом использует в 3 раза более эффективный план и выполняется в 6-7 раз быстрее. По крайней мере, на нашей БД. Если интересны подробности - могу отправить запросы в личку. 3. Отсутствие индекса на поле Subject в таблице RegRequest2. Возможно, есть еще такие места. Можно добавить индекс самим. 4. Не поняли, для чего используются эксклюзивные блокировки в хранимках.
Особо гремучая смесь получается при сочетании 3 и 4 пунктов.
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Как я понял, он формируется динамически, вероятно, для проверки существования других пользователей с теми же параметрами. Мне удалось по аналогии составить запрос, который делает то же самое и при этом использует в 3 раза более эффективный план и выполняется в 6-7 раз быстрее. По крайней мере, на нашей БД. Если интересны подробности - могу отправить запросы в личку. Да, именно для этого. Был бы очень признателен за оптимизированный вариант. |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close