0. comol 3673 27.09.11 08:32 Сейчас в теме

"Убираем блокировки" в 1С. Заставляем MS SQL работать как Oracle.

Включение уровня изоляции Read commited shapshot в MS SQL позволяет практически полностью избежать блокировок на уровне MS SQL при использовании управляемого режима

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
101. ZLENKO 17.07.14 18:33 Сейчас в теме
(99) Алексей777, "Включаем предложенные автором режимы и все становится хорошо - люди работат могут."

В том то и фишка что в режиме блокировщика на MS SQL управляемые блокировки не решают проблему избыточных блокировок :-) Видел много специалистов с умным видом рассуждающих про управляемые блокировки, но не понимающих как оно все в целом работает. Версионник - наше все ! :-)
102. ZLENKO 17.07.14 18:35 Сейчас в теме
(99) Алексей777, "платформа 8.2.16.362, УПП, у меня нет самописных управляемых блокировок - все типовое"

Для достижения максимального эффекта по повышению производительности надо бы внести изменения в конфигурацию.
100. Алексей777 24 05.02.14 12:55 Сейчас в теме
спасибо автору, ставлю +.
103. kvic2705 8 20.07.14 23:47 Сейчас в теме
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '-'.
Msg 195, Level 15, State 5, Line 2
'ALLOW_SNAPSHOT_ISOLATION' is not a recognized SET option.
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '-'.
Msg 195, Level 15, State 5, Line 5
'READ_COMMITTED_SNAPSHOT' is not a recognized SET option.
104. comol 3673 21.07.14 00:07 Сейчас в теме
105. timurhv 8 27.08.14 16:44 Сейчас в теме
Статья помогла для ЗУП/ЗиК 8, где все расчеты выполняются в транзакции - в это время другие учреждения не могут читать данные по регистрам расчета.
После выставления соответствующих настроек: остальные учреждения нормально работают, а по учреждению, где начата транзакция - ждут ее завершения.
106. vde69 898 10.09.14 09:33 Сейчас в теме
не понимаю зачем это нужно вообще?

1с вполне нормально тянет 10 000 одновременно работающих пользователей, вся проблемма 1с состоит в выполнении большого кода в момент с начала чтения данных до момента фиксации транзакции (я об управляемых в авто режиме), по этому необходимо просто сделать обработку проведения быстрой и все...

например я в самописке 95% всех движений формирую в одном пакетном запросе и сразу их записываю, единственное чего у меня вне запроса - это ФИФО списание партий, но и для него все данные я получаю этим-же запросом....

Отгрузка на 1000 позиций при формировании движений накладвает блокировку примерно на 0.1 секунду. Зачем сабж - не понимаю....

Ах да, я забыл про монстров типа УПП, но это проблемма не блокировок а избыточного говнокода...
107. ZLENKO 10.09.14 12:58 Сейчас в теме
(106) vde69, "Ах да, я забыл про монстров типа УПП, но это проблемма не блокировок а избыточного говнокода..."

Предлагаете всем перейти на "самописки" ?
108. ZLENKO 10.09.14 13:00 Сейчас в теме
(106) vde69, "Отгрузка на 1000 позиций при формировании движений накладвает блокировку примерно на 0.1 секунду."

Сделайте замер времени записи 1000 движений по плану счетов по счету с двумя уровнями аналитики (типа Товары на складах)...
109. comol 3673 19.09.14 21:36 Сейчас в теме
(106) vde69,
например я в самописке 95% всех движений формирую в одном пакетном запросе и сразу их записываю
Да вы открыли глаза всем на правильность кода! Если бы все новые типовые конфигурации 1С не были бы так написаны ни зачто бы не догадался так делать :)))))
110. ZLENKO 376 21.06.16 13:25 Сейчас в теме
В платформе 8.3 этот режим уже включен по умолчанию, начиная с MSSQL 2005.

Установил 8.3.8.1747, СУБД MSSQL 2008, создал базу средствами сервера приложений.

Проверяю: select name,snapshot_isolation_state_desc,is_read_committed_snapshot_on from sys.databases

name snapshot_isolation_state_desc is_read_committed_snapshot_on
workdb OFF 0

Т.е. не включен... Что я сделал не так?
111. ZLENKO 376 21.06.16 17:23 Сейчас в теме
(110) ZLENKO, "Т.е. не включен... Что я сделал не так?"

Нашел ответ: "Единственное изменение по отношению к версии 8.2 - это переход на уровень изоляции READ_COMMITED_SNAPSHOT в режиме управляемых блокировок"

P.S.: Он включается при реструктуризации БД при отключенном режиме совместимости с 8.2
112. shved 13.11.17 19:33 Сейчас в теме
коллеги подскажите кто победил? ставить READ_COMMITED или купить оракл? на 13,11,17 ничо не имзенилось?
ПС 70 юзеров. начались жалобы на блокировки
114. comol 3673 14.11.17 01:37 Сейчас в теме
(112) (113) в 8.3 READ_COMMITED_SNAPSHOT ставится автоматически... ну может не с первой версии с 8.3.3 или 8.3.5. Ну и управляемые блокировки конечно должны быть включены. Нет, Oracle покупать не надо. Грустно с ним всё.
115. shved 14.11.17 06:43 Сейчас в теме
(114)
в 8.3 READ_COMMITED_SNAPSHOT ставится автоматически...


это должно быть видно в скуле?

платформу последняя, блокировки управляемые, совместимость отключена но в скуле snapshot_isolation_state_desc = ОФФ:


Ядро 8.3.10.2650
snapshot_isolation_state_desc = OFF
is_read_committed_snapshot_on = 1

наверно единичка говорит о том что READ_COMMITED включен. а первый параметр не надо насильно включать? щас он включен только у двух системных баз master и msdb.

если READ_COMMITED включен и база на ссд, остается только искать и переписывать код?
116. alex_sh2008 5 14.11.17 10:05 Сейчас в теме
(115)Блокировки 1С и блокировки SQL не связанные между собой, что бы избавится от блокировок нужно грамотно писать код в 1С, манипуляции на уровне SQL сервера могут привести к непредсказуемым ситуациям, вплоть до потери данных. Насколько я знаю 1С поддерживает на уровне SQL, только READ_COMMITED блокировки.
117. ZLENKO 376 14.11.17 14:29 Сейчас в теме
(116)
Блокировки 1С и блокировки SQL не связанные между собой, что бы избавится от блокировок нужно грамотно писать код в 1С

Ну не совсем точное высказывание... При автоматических и при управляемых в 1С блокировки в SQL тоже по разному работают.
А в остальном согласен, надо сначала код в 1С переписать, может и хватить только is_read_committed_snapshot_on.
118. alex_sh2008 5 14.11.17 20:00 Сейчас в теме
(117)В SQL блокировки всегда одинаково работают, если не указано при начале транзакции иной уровень изоляции от используемого по умолчанию. 1С свои блокировки использует над блокировками SQL, думаю когда происходит фиксация транзакции в 1С, в SQL начинается транзакция в SQL. Как то писал рекурсивный алгоритм зачистки организаций в базе, максимум удалось вывести на 18 потоков удаления, больше уже шел конфликт блокировок, при удалении использовались управляемые блокировки, и блокировал все подряд, не помогло.
119. ZLENKO 376 23.11.17 19:16 Сейчас в теме
(118)
больше уже шел конфликт блокировок, при удалении использовались управляемые блокировки, и блокировал все подряд, не помогло.

Потому что на уровне MS SQL происходила эскалация блокировок, вот поэтому мне нравятся версионники :-)
120. alex_sh2008 5 23.11.17 20:42 Сейчас в теме
(119)Самое интересное что в 1С когда блокировал в разных потоках, 1 и тот же объект, но со смещением во времени, ни каких исключение не возникало, говорила все ОК. И узнавал о проблеме только когда SQL сервер привет присылал. Короче плюнул на эти все эксперименты с блокировками в 1С, получается конфликт ну и фиг с ним.
121. ZLENKO 376 24.11.17 10:59 Сейчас в теме
(120)
И узнавал о проблеме только когда SQL сервер привет присылал. Короче плюнул на эти все эксперименты с блокировками в 1С, получается конфликт ну и фиг с ним.

Зря плюнули... переход на версионный режим решает проблему блокировок.
122. alex_sh2008 5 24.11.17 11:19 Сейчас в теме
(121)Но и накладывает другие проблемы, в 1С я бы не стал использовать этот режим, да и к тому же мне нужны были эти блокировки, правда я ожидал это на уровне 1С, что бы управлять потоками, так нет штатных механизмов синхронизации, приостановки и т.д.
113. babys 83 13.11.17 21:42 Сейчас в теме
Если у все базы на уф, и не нужен ора в перспективе, то комитьте.
123. maxpiter 142 06.01.18 04:52 Сейчас в теме
А на сколько это применимо к 7.7?
124. comol 3673 09.01.18 19:23 Сейчас в теме
(123) Уже ведь 2018 год... 7.7 это не поможет. 7.7 в принципе ничто уже не поможет :)))
125. maxpiter 142 09.01.18 20:54 Сейчас в теме
(124) все кроме одной бд уже на 8.3, но одну, увы, перетащить очень затратно. Связываться с переездом и переобучением 100+ человек то ещё веселье. Люди с 2004 года на этой платформе сидят и все бы ничего, но не хватает скорости в "документах в секунду". 8ка тоже не факт что при тех же разрезах (заявки, резервы, партии, взаиморасчеты, продажи, проводки) даст улучшения. В общем в поиске светлых голов и решений :)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 60 000 руб. до 110 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата от 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб. до 100 000 руб.
Полный день

Системный аналитик
Новосибирск
зарплата от 80 000 руб. до 100 000 руб.
Полный день