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

or

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

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

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

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

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


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