Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Блокировки / 8 сообщений из 8, страница 1 из 1
01.08.2001, 17:28
    #32010914
Pavel_f
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки
При исполнении SELECT в процедурах по сборке данных для отчетов, вызываемых из одного приложения , таблицы на время исполнения селекта недоступны более актуальным процедурам (в основном - Insert) другого(основного) приложения.
Надо сделать так, чтобы процедуры основного приложения не запирались менее важными селектами приложения для отчетов.
Я на данный момент добавил в селекты WITH (NOLOCK). Но не уверен. Может нужно "WITH(ROWLOCK)" -? Подскажите,пожалуйста, каким образом правильно решить проблему? Заранее спасибо.
...
Рейтинг: 0 / 0
01.08.2001, 22:33
    #32010916
Extravert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки
NOLOCK, всё правильно.

Я думаю, что ROWLOCK напротив, заблокирует каждую строчку, отобранную для отчета.
...
Рейтинг: 0 / 0
02.08.2001, 01:05
    #32010920
Slava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки
Вообще SQL server по умолчанию обеспечивает 1-й уровень блокирования, так что если Вы просто читаете данные, они не блокируются и должны быть доступны для изменения, чтения и добавления новых записей другими транзакциями. В связи с этим лучше разобраться с уровнем блокирования, который Вы имеете на момент чтения(подозреваю, что ранее где-то установлено set transaction isolation level REPETABLE READ или SERIALIZABLE), хотя бы просто потому что этот уровень надо контролировать всегда.
...
Рейтинг: 0 / 0
02.08.2001, 05:11
    #32010929
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки
2 Slava
Не знаю что такое "1-й уровень блокирования" но по умолчанию в SQL server стоит isolation level REPETABLE READ.

2 Pavel_f
WITH (NOLOCK) должно помочь.
...
Рейтинг: 0 / 0
02.08.2001, 09:20
    #32010967
Slava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки
FROM BOL

READ COMMITTED
Specifies that shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in nonrepeatable reads or phantom data. This option is the SQL Server default.
Могу еще из книжки(хорошей) цитату привести.
...
Рейтинг: 0 / 0
02.08.2001, 10:22
    #32010972
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки
2 Slava

Сорри, у меня тут табличка с уровнями изоляции, когда писал не в ту ячейку глянул, причем по смыслу представлял именно READ COMMITTED. В общем прошу прощения

А что такой 1-й уровень блокирования, это откуда?

P.S. Что то стал много ошибаться в последнее время, однако
...
Рейтинг: 0 / 0
03.08.2001, 01:45
    #32011008
Slava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки
Про ошибки: "А Вы Гена на встречу не ходили? Пивко там не пили?" Это конечно шутка. Ошибки всегда и у всех бывают.
Ну нумерацию уровней я в книге("Microsoft SQL Server 2000 в подленнике") прочитал начинаются они с нуля. Это какая-то буржуйская организация так придумала.
Дак собственно ANSI и придумала.
To All. А согласитесь интересно получается, мы тут с Вами обсуждаем проблему а вопрошающий молчит.
...
Рейтинг: 0 / 0
03.08.2001, 05:07
    #32011018
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки
>Про ошибки: "А Вы Гена на встречу не ходили? Пивко там не пили?" Это конечно шутка.
Бррр это конечно offtop но шутки не понял, вставте хоть слово "лопата" (это там где смеяться нужно), а то я совсем не понимаю причем здесь ошибки, пивко и шутка

p.s. А вопрошающий внял совету Extravert-а и вероятно работает себе дальше
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Блокировки / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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