Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 При чтении данных блокируется таблица на изменение  [new]
leonix
Member

Откуда:
Сообщений: 403
Выполняю запрос по переносу данных из одной базы в другую.
В базе в которой я только читаю данные возникает блокировка читаемой таблицы.
Пользователи не могут работать.
Что можно сделать чтобы не блокировалась работа всех пользователей.
Вот сам запрос.

insert into [_InfoRg222] (
[_Fld223],--объект 
[_Fld224], --номер версии
[_Fld251], --дата версии
[_Fld225], --версия объекта
[_Fld226], --автор версии
[_Fld232], -- контрольная сумма
[_SimpleKey]
)  
SELECT         
lower(dbo.funcgetid(_Fld40351_RRRef)),--объект 
[_Fld40352]+10000002, --номер версии
[_Fld40356], --дата версии
[_Fld40353], --версия объекта
lower(dbo.funcgetid(_Fld40355RRef)) ,-- автор версии
[_Fld43440], --контрольная сумма
Convert(binary(16),NEWID()) --[_SimpleKey] --
FROM [myserver].[mybase].dbo._InfoRg40350 
where [_Fld40356]>='4018-11-01' and [_Fld40356]<'4018-12-01 00:00:00'
21 фев 19, 14:28    [21816398]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Dzianis
Member

Откуда:
Сообщений: 76
leonix,

автор
Пользователи не могут работать.


не могут обновить данные? Или как?
Сколько времени выполняется конкретно ваш запрос чтения?

1) Сделайте индексы, чтобы чтение прошло быстрее или блокировалась не вся таблица.
2) переносите меньший объем данных за 1 раз.
3) включить другой уровень изоляции
21 фев 19, 15:11    [21816481]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
'4018-11-01'


это что за дата такая?
21 фев 19, 15:16    [21816490]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36699
Задать paglock / rowlock на вычитываемой таблице.
21 фев 19, 15:20    [21816495]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
iiyama
Member

Откуда:
Сообщений: 642
Konst_One,
re> это что за дата такая?

это 1c, установлено смещение 2000
21 фев 19, 15:21    [21816498]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
и конечно нет индекса по полю _Fld40356
21 фев 19, 15:22    [21816500]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
L_argo
Member

Откуда:
Сообщений: 1140
Konst_One
'4018-11-01'


это что за дата такая?
Ну ты как маленький..... Это ж 1С !

па сабжу: попробовать поставить :
from [myserver].[mybase].dbo._InfoRg40350 with(nolock)
21 фев 19, 15:43    [21816533]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
L_argo
па сабжу: попробовать поставить :
from [myserver].[mybase].dbo._InfoRg40350 with(nolock)

мда
21 фев 19, 15:44    [21816538]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3466
Konst_One
'4018-11-01'


это что за дата такая?


гости из будущего
21 фев 19, 16:20    [21816578]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
leonix
Member

Откуда:
Сообщений: 403
Dzianis
leonix,

автор
Пользователи не могут работать.


не могут обновить данные? Или как?
Сколько времени выполняется конкретно ваш запрос чтения?

1) Сделайте индексы, чтобы чтение прошло быстрее или блокировалась не вся таблица.
2) переносите меньший объем данных за 1 раз.
3) включить другой уровень изоляции


Да, не могут записать данные в этот регистр.
Если просто читать данные, то секунд 10-20.

1) думаю чтение и так быстро идет, в индексе не вижу смысла
2) и так вроде небольшими частями переношу, 10 сек читаются 300 000 строк
3) вот это не знаю как делать
21 фев 19, 16:35    [21816586]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
leonix
Member

Откуда:
Сообщений: 403
Гавриленко Сергей Алексеевич
Задать paglock / rowlock на вычитываемой таблице.


Это надо изучить мне, пока не знаю что это
21 фев 19, 16:36    [21816587]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
leonix
Member

Откуда:
Сообщений: 403
Konst_One
и конечно нет индекса по полю _Fld40356

Индекса нет, но читается быстро. Проблема не в чтении.
21 фев 19, 16:36    [21816588]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
leonix,

автор
1) думаю чтение и так быстро идет, в индексе не вижу смысла

при чём здесь скорость?

автор
3) вот это не знаю как делать

что бы просто развести всех читателей и писателей читайте про RCSI
21 фев 19, 16:37    [21816589]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
leonix
Member

Откуда:
Сообщений: 403
L_argo
Konst_One
'4018-11-01'


это что за дата такая?
Ну ты как маленький..... Это ж 1С !

па сабжу: попробовать поставить :
from [myserver].[mybase].dbo._InfoRg40350 with(nolock)


Спасибо! Сейчас запустил, вроде пользователи не жалуются и блокировок не вижу.
21 фев 19, 16:37    [21816590]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
leonix
Member

Откуда:
Сообщений: 403
TaPaK
L_argo
па сабжу: попробовать поставить :
from [myserver].[mybase].dbo._InfoRg40350 with(nolock)

мда


Почему "мда"? Вроде это мне как раз и помогло?
21 фев 19, 16:39    [21816592]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
leonix
Выполняю запрос по переносу данных из одной базы в другую.


хрень вы всякую со своим nolock перенесёте в новую базу
ps
извиняюсь за грубость
21 фев 19, 16:39    [21816594]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
leonix
Member

Откуда:
Сообщений: 403
TaPaK
leonix,

автор
1) думаю чтение и так быстро идет, в индексе не вижу смысла

при чём здесь скорость?

Интересно... индекс поможет избежать блокировок?

автор
3) вот это не знаю как делать

что бы просто развести всех читателей и писателей читайте про RCSI


ок. спасибо. почитаю.
21 фев 19, 16:40    [21816595]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
leonix
Member

Откуда:
Сообщений: 403
Konst_One
leonix
Выполняю запрос по переносу данных из одной базы в другую.


хрень вы всякую со своим nolock перенесёте в новую базу
ps
извиняюсь за грубость


Почему? Переношу данные за ноябрь прошлого года, данные в этом периода 100% уже не будут меняться сейчас. Это архив истории изменений данных.
21 фев 19, 16:41    [21816597]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
вам виднее, nolock - это грязное чтение
21 фев 19, 16:42    [21816598]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
leonix,

из-за nolock можно прочесть неполноценные или удалённые при откате данные. "Отчеты биться не будут".
21 фев 19, 17:25    [21816645]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Dzianis
Member

Откуда:
Сообщений: 76
leonix
Konst_One
пропущено...


хрень вы всякую со своим nolock перенесёте в новую базу
ps
извиняюсь за грубость


Почему? Переношу данные за ноябрь прошлого года, данные в этом периода 100% уже не будут меняться сейчас. Это архив истории изменений данных.


если это древние данные, не лучше ли их перенос проводить в регламентное время, когда активность пользователей отсусттвует или минимальна?
21 фев 19, 18:11    [21816710]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Alexander Us
Member

Откуда:
Сообщений: 1095
leonix,

1) обязательно создайте индекс по полю _Fld40356

2) попробуйте опцию option(maxdop 1) чтобы выш запрос не забирал слишком много ресурсов

3) если первых 2 пунктов окожется недостаточно, и вы абсолютно уветены, что данные не меняются/не откатываются то тогда можно и with(nolock).
Ну или если для вашей отчётности приемлимы неточности.
21 фев 19, 18:40    [21816751]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
Как вариант, дабы забороть подобные моменты в корне. https://infostart.ru/public/157277/
21 фев 19, 19:39    [21816806]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
Типа включают версионный режим и подкручивают 1С дабы корректно с ним работала.
21 фев 19, 19:41    [21816808]     Ответить | Цитировать Сообщить модератору
 Re: При чтении данных блокируется таблица на изменение  [new]
Очень лысый
Member

Откуда: БОМЖ
Сообщений: 590
На 8.3, если не врут, READ_COMMITED_SNAPSHOT включается по умолчанию.
21 фев 19, 19:45    [21816811]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить