Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Версия сервера: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) Словили блокировку с типом "KEY" (Блокировка внутри индекса, которая защищает диапазон ключей в сериализуемых транзакциях) Режим блокировки "U" (Update) Знаем объект который участвует в блокировке - это таблица с "кубами" Содержимое INPUTBUFFER показало, что ноги растут из хранимой процедуры (назовем её " MyDB.dbo.DeleteCheckedItems;1 ") Поясните, куда копать? Что то не так с индексами у этой таблицы? или с ключом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:12 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
А с чего вы вообще взяли, что в вашей ситуации что-то не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:17 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERСловили блокировку с типом "KEY" (Блокировка внутри индекса, которая защищает диапазон ключей в сериализуемых транзакциях) Режим блокировки "U" (Update)Вы про блокировку, или про дедлок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:27 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей Алексеевич, Ну потому что я словил блокировку. Эта блокировка может висеть часами, у пользователей всё начинает тормозить. До тех пор пока её не прибьют руками. Хочу, чтобы таких блокировок не возникало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:28 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
alexeyvgMAULERСловили блокировку с типом "KEY" (Блокировка внутри индекса, которая защищает диапазон ключей в сериализуемых транзакциях) Режим блокировки "U" (Update)Вы про блокировку, или про дедлок? Видимо дедлок. Хочу понять причину, а из информации что есть только то что я написал в первом посте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:30 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERВидимо дедлок видимо, что угодно, но не дедлок. дедлок сервер разруливает без вас менее, чем за секунду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:32 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Yasha123, Я просто хочу понять, почему именно блокировка с типом KEY? Т.е. что мне проверить в первую очередь? Может быть что-то не так с индексом? или индекс построен неправильно.. или ещё что-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:38 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Yasha123дедлок сервер разруливает без вас менее, чем за секунду первый дедлок будет разрешен максимум через 5 секунд после возникновения далее частота обнаружения резко повышается (до 100ms), если дедлоков больше не наблюдается, частота возвращается к 5 с ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:42 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERYasha123, Я просто хочу понять, почему именно блокировка с типом KEY? Т.е. что мне проверить в первую очередь? Может быть что-то не так с индексом? или индекс построен неправильно.. или ещё что-то? и с чем же еще должна быть блокировка? радуйтесь, что KEY, индекс используется. вам бы хотелось, чтобы всю таблицу залочило? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:47 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERНу потому что я словил блокировку. Эта блокировка может висеть часами, у пользователей всё начинает тормозить. До тех пор пока её не прибьют руками. Хочу, чтобы таких блокировок не возникало. либо активный процесс (владелец блокировки) не очень расторопен, либо незакрытая транзакция воспользуйтесь sp_whoisactive - она покажет и блокирующего, и транзакции, и планы, и многое другое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:48 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
komradYasha123дедлок сервер разруливает без вас менее, чем за секунду первый дедлок будет разрешен максимум через 5 секунд после возникновения далее частота обнаружения резко повышается (до 100ms), если дедлоков больше не наблюдается, частота возвращается к 5 с и какая же разница, если у ТС авторЭта блокировка может висеть часами ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:49 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERЗдравствуйте. Версия сервера: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) Поясните, куда копать? поставьте актуальный апдейт сначала, а то можно удивляться багам на ровном месте http://sqlserverbuilds.blogspot.com/#sql2008r2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:50 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Yasha123komradпропущено... первый дедлок будет разрешен максимум через 5 секунд после возникновения далее частота обнаружения резко повышается (до 100ms), если дедлоков больше не наблюдается, частота возвращается к 5 с и какая же разница, если у ТС авторЭта блокировка может висеть часами ? это к тому, что не 1с, а 5с для первого дедлока просто уточнение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:52 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERСловили блокировку с типом "KEY" (Блокировка внутри индекса, которая защищает диапазон ключей в сериализуемых транзакциях) Режим блокировки "U" (Update) и где вы тут нашли "диапазон ключей" и "сериализацию"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 15:59 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Yasha123, здесь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 16:03 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERYasha123, здесь . значит, смените чтиво. вот тут перечислены блокировки, сравните таблицы 10-3 и 10-4, убедитесь, что у вас никакого диапазона нет, равно как и сериализации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2018, 16:18 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Yasha123, Спасибо. Чтиво полезное. Но у меня до сих пор нет полной ясности, что делать с этой блокировкой. Посмотрел код хранимой процедуры, там идет блок try-catch: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. вот этот Код: sql 1. обрабатывает 0 строк, т.к. в столбце [deleted] везде нули. может чей то опытный взгляд заметит подводный камень в этом коде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 09:34 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERможет чей то опытный взгляд заметит подводный камень в этом коде?Подозреваю, что для удаления нужно долго сканить всю таблицу, предварительно её заблокировав. Рекомендую сделать фильтрованный индекс с условием WHERE [deleted] = 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 10:05 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Я посмотрел содержимое, В этой таблице, 8500 записей. Неужели такое количество может положить сервер на несколько часов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 10:23 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULER, Ваша сессия с DELETE тоже блокирована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 10:38 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
invm, Да, а видимо кем блокирована, надо посмотреть по blocked, выкупить запрос из INPUTBUFFER по spid = blocked и понять корень блокировки... У меня правильный ход мыслей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 10:47 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERи понять корень блокировки... У меня правильный ход мыслей?Да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 11:27 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Подскажите, правильно ли я понимаю процесс отлавливания причины блокировки: Первоначально процесс построен так: 1) Отлавливаю блокировку: Код: sql 1. 2. 3. Получаю 1 строку с информацией о блокировке. (т.е. @spid = spid и @blocked = blocked) Получаю текст заблокированного запроса: Код: sql 1. 2. 3. 4. Затем получаю текст блокирующего запроса: Код: sql 1. 2. 3. 4. Проблема в том, что если смотреть процесс в dbo.sysprocesses по spid = @blocked (из первого запроса) то он (как я понимаю первопричина) - не заблокирован. и INPUTBUFFER такого процесса постоянно меняется! Отсюда у меня есть опасения, что я не правильно получаю текст блокирующего запроса. Отсюда вопрос: как получить текст того самого первого запроса, который стал причиной блокировки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 13:57 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Думаю, что причина, по которой каждый раз меняется текст блокирующего запроса - простая: Я ловлю блокировку агентом MSSQL, задание которого срабатывает каждые 30 сек. На момент возникновения блокировки spid и blocked попадают в sysprocesses абсолютно верными. Но когда начинаю анализировать блокировку (предварительно поймав её), spid блокировки остаётся прежним, ведь она ещё висит! а вот blocked (id блокирующего процесса) может уже 20 раз измениться. И вроде бы я смотрю правильный spid в sysprocesses , а данные в нём уже совсем от другой активности. Поэтому смысл смотреть содержимое INPUTBUFFER блокирующего процесса имеет только тогда, когда есть возможность перехватывать его сразу в момент возникновения, а не по таймеру. Я правильно понимаю суть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 14:37 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULER, если блокировка исчезает за столь малое время (несколько секунд), то проблема, скорее всего, недостойна внимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 15:19 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERНо когда начинаю анализировать блокировку (предварительно поймав её), spid блокировки остаётся прежним, ведь она ещё висит! а вот blocked (id блокирующего процесса) может уже 20 раз измениться. И вроде бы я смотрю правильный spid в sysprocesses , а данные в нём уже совсем от другой активности.А, понятно. У вас в джобе регулярно выполняется некое удаление. Разумеется, оно часто блокируется, как же иначе? Но блокируется на короткое время, что не является проблемрой, а специально так задумано, во имя обеспечения целостности и атомарности БД. Просто у вас неправильный скрипт выявления блокировок. Нужно выявлять длительные блокировки, это действительно тревожный признак (хотя иногда это неизбежно), а не короткие. Я то думал, что у вас висят процессы, всё заблокировано надолго, а в итоге оказался прав Гавриленко Сергей Алексеевич :-)Гавриленко Сергей АлексеевичА с чего вы вообще взяли, что в вашей ситуации что-то не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 16:12 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, Блокировка не исчезает, а может висеть сколь угодно долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 16:12 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
alexeyvgMAULERНо когда начинаю анализировать блокировку (предварительно поймав её), spid блокировки остаётся прежним, ведь она ещё висит! а вот blocked (id блокирующего процесса) может уже 20 раз измениться. И вроде бы я смотрю правильный spid в sysprocesses , а данные в нём уже совсем от другой активности.А, понятно. У вас в джобе регулярно выполняется некое удаление. Разумеется, оно часто блокируется, как же иначе? Но блокируется на короткое время, что не является проблемрой, а специально так задумано, во имя обеспечения целостности и атомарности БД. Просто у вас неправильный скрипт выявления блокировок. Нужно выявлять длительные блокировки, это действительно тревожный признак (хотя иногда это неизбежно), а не короткие. Я то думал, что у вас висят процессы, всё заблокировано надолго, а в итоге оказался прав Гавриленко Сергей Алексеевич :-)Гавриленко Сергей АлексеевичА с чего вы вообще взяли, что в вашей ситуации что-то не так? Так мой скрипт, и выявляет длительную блокировку, как раз она может висеть очень долго. Просто у блокировки, среди прочих полей, есть два поля: spid и blocked. Значения у них разные. Разработчики запросили код не блокируемой транзакции (spid) а блокирующей (я так понимаю, что это blocked?!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 16:17 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERТак мой скрипт, и выявляет длительную блокировку, как раз она может висеть очень долго. Просто у блокировки, среди прочих полей, есть два поля: spid и blocked. Значения у них разные.Вы же пишите, что "а вот blocked (id блокирующего процесса) может уже 20 раз измениться" С чего же вы взяли, что она длительная? Этот блокируемый процесс тыщу раз заблокировали-отпустили, пока вы смотрели. Длительная - это когда как минимум spid и blocked не меняются, причём даже это не гарантирует, потому что в промежутке они могли разблокироваться, поработать, и снова заблокироваться. Нужно смотреть где то в sys.dm_tran_locks ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 17:14 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Абсолютно точно spid не меняется. Запись висит в блокировках в мониторе и в Код: sql 1. 2. с одним и тем же spid-ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 17:33 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
в sys.dm_tran_locks висит та же самая с тем же spid что и в sysprocesses ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 17:34 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULER, какая-то путаница в показаниях... А это о чем Вы написали? Проблема в том, что если смотреть процесс в dbo.sysprocesses по spid = @blocked (из первого запроса) то он (как я понимаю первопричина) - не заблокирован. и INPUTBUFFER такого процесса постоянно меняется! то меняется, то не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 17:37 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, Ну а как я найду содержимое INPUTBUFFER зная blocked?! (т.е. блокирующего процесса) Я зайду в sysprocesses и найду там запись с spid = blocked (из первой записи) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 17:53 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
потом этот spid подставлю в DBCC INPUTBUFFER и получу запрос который был причиной блокировки. spid которого потом попал в blocked заблокированного процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 17:56 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERПроблема в том, что если смотреть процесс в dbo.sysprocesses по spid = @blocked (из первого запроса) то он (как я понимаю первопричина) - не заблокирован. и INPUTBUFFER такого процесса постоянно меняется!Вполне вероятно, что в блокирующей сессии есть незакрытая или долгоиграющая транзакция. Проверить это можно так Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 17:56 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
invmMAULERПроблема в том, что если смотреть процесс в dbo.sysprocesses по spid = @blocked (из первого запроса) то он (как я понимаю первопричина) - не заблокирован. и INPUTBUFFER такого процесса постоянно меняется!Вполне вероятно, что в блокирующей сессии есть незакрытая или долгоиграющая транзакция. Проверить это можно так Код: sql 1. Вот очень на это похоже!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 17:59 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULER, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. может поможет чем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 18:00 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
архивариусMAULER, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. может поможет чем Благодарю. Завтра отпишусь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 18:04 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULER, Я себе такое представление сделал, иногда использую. Понятно, что там виден текст пакета, а не Inputbuffer, но этого должно быть достаточно. Представление вычисляет самый верхний блокирующий процесс в цепочке. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2018, 18:38 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Доброе утро. Выловил баг в хранимой процедуре, использующей внутри себя курсор. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. В блоке try-catch происходит: 1) "Конфликт инструкции DELETE с ограничением REFERENCE" 2) по ветке catch происходит генерация RAISEERROR... 3) и return Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. т.е. освобождения курсора не происходит. При попытке запустить второй раз ту же самую ХП, MSSQL ругается на то что такой курсор уже существует, дорабатывает оставшийся набор записей, и впадает в мертвый цикл... Я так понимаю, что что-то происходит с переменной @@FETCH_STATUS, которая всегда = 0... Или я неправильно понимаю ситуацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 08:45 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERЯ так понимаю, что что-то происходит с переменной @@FETCH_STATUS, которая всегда = 0...В документации указано, что @@FETCH_STATUS в таком случае неопределён. Может, это и 0, почему бы и нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 09:10 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
MAULERт.е. освобождения курсора не происходит.Вообще нужно всегда использовать курсор типа LOCAL, другие варианты ИМХО экзотика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 09:15 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Глобальные курсоры используются в очень специфических случаях, посему измените настройку базы по умолчанию на LOCAL курсор и спите спокойно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 11:27 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, LOCAL И STATIC это деволт при не указанном явно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 11:30 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
TaPaK, вот эта настройка: ALTER DATABASE [db1] SET CURSOR_DEFAULT LOCAL WITH NO_WAIT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 11:41 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовTaPaK, вот эта настройка: ALTER DATABASE [db1] SET CURSOR_DEFAULT LOCAL WITH NO_WAIT это понятно, кто-то меняет на иное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 11:43 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
TaPaK, по умолчанию новая база создаётся с GLOBAL настройкой, насколько я вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 11:50 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Может быть у Вас этот парамер изменён в базе model? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 11:53 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовTaPaK, по умолчанию новая база создаётся с GLOBAL настройкой, насколько я вижу. день прожит не зря :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 12:01 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Я так понимаю, что "рвать по живому" при помощи "return" не стоит?! Возможно, правильнее, в моём случае, присваивать какой-нибудь переменной "RolbackStatus" значение 1 после отката транзакции. Затем сравнивать её в While вместе с @@FETCHSTATUS ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 12:18 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовМожет быть у Вас этот парамер изменён в базе model? А как это посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 12:20 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
Нашел. Просто в свойствах БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 13:27 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
А если в настройке БД стоит "Курсор по умолчанию: GLOBAL", а в запросе у меня будет: DECLARE deleteCursor CURSOR LOCAL FAST_FORWARD FOR ... то курсор будет локальным? Или этого недостаточно и придется изменять настройку БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 13:30 |
|
||
|
Помогите понять информацию по блокировке..
|
|||
|---|---|---|---|
|
#18+
TaPaKВладислав КолосовTaPaK, вот эта настройка: ALTER DATABASE [db1] SET CURSOR_DEFAULT LOCAL WITH NO_WAIT это понятно, кто-то меняет на иное?Это понятно, но лучше явно писать для курсоров LOCAL, всегда так делаю, ни разу не пожалел :-) Да и вот, видите, в model бывает всякое :-) MAULERalexeyvg, Я так понимаю, что "рвать по живому" при помощи "return" не стоит?! Возможно, правильнее, в моём случае, присваивать какой-нибудь переменной "RolbackStatus" значение 1 после отката транзакции. Затем сравнивать её в While вместе с @@FETCHSTATUS ?Ну, вообще, нужно обрабатывать ошибку, и не входить в бесконечный цикл. Это для префекционистов :-) MAULERА если в настройке БД стоит "Курсор по умолчанию: GLOBAL", а в запросе у меня будет: DECLARE deleteCursor CURSOR LOCAL FAST_FORWARD FOR то курсор будет локальным? Или этого недостаточно и придется изменять настройку БД?Да, достаточно, и тогда настройки не будут иметь никакого значения. LOCAL и FAST_FORWARD - то, что нужно для курсолра в подавляющем большинстве случаев. Вообще, при правильном коде значимость многих настроек уменьшается. Например, самое распространённое, криворукие программисты любят завязывать работоспособность приложения на коллейшен, указываемый при установке сиквела, и потом их важнейшей проге нужно выделять отдельный сервер, поубивал бы. Кстати, если у вас там 8000 записей, то я не вижу необходимости делать удаление по 10 в цикле. Не умножайте сущности сверх необходимого. Разве что процедура не ограничивается удалением из одной этой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2018, 14:15 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1688849]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
110ms |
get tp. blocked users: |
2ms |
| others: | 260ms |
| total: | 466ms |

| 0 / 0 |
