powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как избежать блокировок?
6 сообщений из 6, страница 1 из 1
Как избежать блокировок?
    #32029261
Sasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть псевдо временная таблица, в которой хранятся данные для отчетов. Хранимые процедуры, формирующие отчет, пишут туда свои результаты, а приложение оттуда читает. В ХП выполняются Delete, Insert и Update. В таблице есть поле куда пишется @@spid, поэтому каждый процесс работает со своим куском таблицы. При небольшом количестве пользователей (5-10) на чинаются длительные блокировки и.т.д. Можно ли как-нибудь избежать блокировок ?
...
Рейтинг: 0 / 0
Как избежать блокировок?
    #32029264
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что это такое за псевдо временная таблица ?
во время начала выполнения процедуры ставь
set transaction isolation level
read uncommited
после окончания
set transaction isolation level
read commited

or

select (nolock) ...
...
Рейтинг: 0 / 0
Как избежать блокировок?
    #32029268
Sasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Псевдо временная это значит что это обычная таблица, которая всегда существует, просто она используется как временная. С временными таблицами не хочется возиться.
Насколько я понял из BOL transaction isolation level действует только на Select, а у меня блокировки возникают из-за Delete,Insert,Update, которые выполняются из разных процессов. Поэтому, мне кажется, что с помощью transaction isolation level проблему не решить
...
Рейтинг: 0 / 0
Как избежать блокировок?
    #32029269
Dankov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как бы разные процессы не работали со своими кусками таблицы, индексы на этой таблице - общие, поэтому возникает конкуренция за обновление индексов при изменении данных. Кроме того, данные разных процессов могут лежать на одних страницах, а внутри страниц происходит переупорядочивание данных при обновлении. Опять возникает конкуренция. Поэтому все равно процессы будут мешать друг-другу. Чтобы такого не происходило, используют локальные временные таблицы, которые гарантировано видны только внутри сессии, их создавшей.
...
Рейтинг: 0 / 0
Как избежать блокировок?
    #32029273
hermit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без обид...

Хорошая позиция
не хочу возится с временными таблицами буду возится с блокировками..
а оно того стоит?
лучше я думаю наоборот.

лично я во многих случаях от блокировок спасаюсь именно времянками.
...
Рейтинг: 0 / 0
Как избежать блокировок?
    #32029287
hermit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без обид...

Хорошая позиция
не хочу возится с временными таблицами буду возится с блокировками..
а оно того стоит?
лучше я думаю наоборот.

лично я во многих случаях от блокировок спасаюсь именно времянками.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как избежать блокировок?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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