powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с блокировками разобраться
4 сообщений из 4, страница 1 из 1
Помогите с блокировками разобраться
    #32051197
acteck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть процедурка в которой несколько всяких инсёртов,апдейтов и селектов.
Так вот .,
во первых на каком-то этапе происходит затык и выяснить сложновато так как происходит полный откат всех операций,поэтому можно ли в MS Sql Server 7.0 по шагово отлаживать процедурку,
во вторых,
блокировки действуют до нового их объявления или же только на последующую вложенную транзакию?
...
Рейтинг: 0 / 0
Помогите с блокировками разобраться
    #32051201
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если можно, то переведите сказанное на русский :). Что такое "затык"? Надеюсь, это не то, что я подумал? Может быть это дедлок? Или неспособность разобраться в том, что написано ранее при необходимости дополнить текст процедуры некоторым количетсвом строк на TSQL? Или это просто ошибка времени выполнения? Если ошибка, то приведите пожалуйста ее текст.
Пошагово отлаживать процедуру можно из QA при условии, что вы установите более новую версию SQL-сервера, а именно 2000. Можно отлаживать и в версии 7.0, но в комплекте поставки SQL7.0 подобной утилиты нет. Она поставляется, например, с Visual Studio 6.0.
Блокировки действуют ВСЕГДА. Любое обращение к некоторым таблицы приводит к наложению блокировок (либо явно, либо неявно). Блокировки бывают разделяемые, монопольные, на чтение, на запись, намерения и т.д. (лучше об этом почитать в литературе, а то мой топик превратится в "Войну и Мир"). Внутри одной транзакции блокировки на один и тот же ресурс сохраняются до конца транзакции. Статус блокировки на один и тот же ресурс в рамках одной и той же транзакции может изменяться, то только в сторону захвата еще большей части ресурса, либо ужесточения этой блокировки. Подобный процесс называется "эскалацией блокировок" (например, блокировка на уровне строки может перейти к страничной, а страничная - к блокировке всей таблицы).
...
Рейтинг: 0 / 0
Помогите с блокировками разобраться
    #32051208
acteck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
затык -
это я имелл в ивду,что на каком то этапе происходит проблема(ошибка - не суть важно) и в результате все транзакции откачиваюся.
А убирать полный откат - опасно -потом там ногу сломаешь.
Поэтому ошибки то собственно и нет..
Значит придётся в QA
А скачать отдельно утилитку нельзя по отладке?
...
Рейтинг: 0 / 0
Помогите с блокировками разобраться
    #32051482
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка ошибке рознь. Большинство ошибок проверяется с помощью @@Error. Откат транзакции факт возникновения ошибки автоматом не вызывает, правда это не во всех случаях корректно, для некоторых особых ситуаций требуются особые установки, например set arithabort. Ошибку можно проанализировать и принять ответные меры. Некоторые клиентские инструментарии выявляют ошибку и автоматом посылают rollback. Бороться тогда нужно с ними.
Отдельный вопрос - вложенные транзакции. Суть сводится к тому, что про них можно забыть и рассматривать их как одну большую транзакцию. Внутренние Commit просто опускаешь - потому что в них нет никакого смысла. А вот ЛЮБОЙ rollback откатывает эту макротранзакцию целиком. Зачем так сделано? По одной версии для соблюдения требований атомарности транзакции, по другой версии - так было просто проще.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с блокировками разобраться
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]