Имя: Пароль:
1C
1С v8
Жуткие тормоза при использовании разделителя в виде общего реквизита
,
0 ILoJes
 
03.02.15
16:21
В общем стоит задача тестирования разделения данных через общий реквизит. Тестирование происходит на копии рабочей базы, база большая. Был добавлен общий реквизит в виде числа и в состав добавлен регистр бухгалтерии. После применения изменений, форма списка регистра открывается 10 минут, причем после того как пролистаешь вниз строчки и начинают подгружаться новые, опять зависает на несколько минут. При попытке открыть движения документа (видать когда выбираются по регистру бухгалтерии) - опять зависает на несколько минут. Написал обработку чтоб проставить значения разделителя. Записи регистра получаемые по регистратору выбираются 3-5 мин. Кто то с таким сталкивался , можно ли это как-то  побороть и с чем это может быть связано? :)
1 H A D G E H O G s
 
03.02.15
16:34
(0) У разделителя использование разделяемых данных - Независимо и совместно, у пользователя не не включено использование разделителя.
2 ILoJes
 
03.02.15
17:17
Это так и есть, я захожу с разными значениями разделителя, если он включен, то вообще ничего не видно (кроме тех, по которым обработка проставила), если выключен - показывает все записи и жутко тормозит
3 H A D G E H O G s
 
03.02.15
17:31
(2) "Это - норма" ©Малышева.
4 ILoJes
 
03.02.15
17:35
(3) Да ну это ж анриал...а если мне надо отчет построить сразу по всем фирмам, естессно с выключенным разделителем, и будут такие тормоза, то может проще РЛСом пользоваться?
5 H A D G E H O G s
 
03.02.15
17:41
(4) Не надо строить такие отчеты :-)

Разделитель данных нужен прежде всего для ведения независимых учетов по разным непересекающимся фирмам, у которых может быть одинаковые статические данные (КЛАДР, контрагенты, отраслевые служебные справочники).

Хотя 1С и разрешает (не запрещает) строить разграничение доступа на основе разделителя данных, отдельно уточняя, что консолидированные отчеты/общие пользователи будут тормозить.
6 ILoJes
 
03.02.15
17:56
(5) Да тут вопрос именно в том, что самописная конфа, которая используется в куче баз по организациям, и вместо того чтоб это все сливать, гонять обмены и т.д. просто загнать все в одну базу, разделить по организации, естессно чтоб были какие то данные общие, а остальное разделить, но нужно получать иногда общие отчеты для начальства...Вроде бы классный вариант с этим разделением...но вот с отчетами
конечно проблема...
7 ShoGUN
 
03.02.15
18:00
(6) Юзай РЛС для этих целей.
8 Dmumaju
 
03.02.15
18:04
(0) Разделитель - плохая идея, если потребуется оформлять "межорганизационные" обороты. Универсальнее - измерения в регистрах + РЛС
9 ILoJes
 
03.02.15
18:07
(7) Подумываю уже...просто разделитель настраивается намного проще ) но и по производительности другой результат
10 H A D G E H O G s
 
03.02.15
18:10
(6) Пеши отчеты с отбором по значениям разделителя, ну тоесть:

ВЫБРАТЬ
    Товары.Код,
    Товары.Наименование
ИЗ
    Справочник.Товары КАК Товары
ГДЕ
    Товары.МойРазделитель В(&МассивНужныхРазделителей)
11 H A D G E H O G s
 
03.02.15
18:10
Динамические списки также.
12 H A D G E H O G s
 
03.02.15
18:11
Чтобы там не говорили про операцию ИЛИ и индексы, для одного и того же поля индекса она дает устойчивый indexseek :-). В цикле :-)
13 ILoJes
 
03.02.15
19:02
А механизм работы разделителя потом не подправит еще раз мой запрос??
14 H A D G E H O G s
 
03.02.15
19:06
(13) Не должен.
В качестве доказательства приведу пример цитаты Линуса Торвальдса:
"Разработчики ядра не ожидают никаких проблем с Linux в этом году, но проблемы обязательно будут"
15 ILoJes
 
05.02.15
11:22
Ну что я хочу сказать...
(10) не работает, фильтрует все равно по текущему разделителю...

во вторых, не знаю как там должно разделять и какие области создаваться, но запуск одновременного перепроведения одинаковых доков, но в разных сеансах с разными разделителями, т.е. обращения к одному и тому же регистру, вешает оба сеанса, т.е. не знаю как там должно работать это разделение, но конфликт блокировок наяву
16 H A D G E H O G s
 
05.02.15
13:10
(15) Ты что-то делаешь не так :-)
17 ILoJes
 
05.02.15
13:31
(16) По фильтрации - я имею ввиду с включенным разделителем, добавляешь в запрос отбор по разделителю,все равно фильтрует по текущему.
По поводу перепроведения - сообразил,что там еще куча регистров используется - проверки всякие, возможно они блокируются.
18 H A D G E H O G s
 
05.02.15
13:35
(17) Все верно.
Фильтр по всем разделителям нужен для выключенного отбора, при построеннии консолидированной отчетности, штоб не тормозило
19 ILoJes
 
06.02.15
13:11
В общем на тестовой базе с 2мя документами и 2мя регистрами при одновременном запуске перепроведения всех документов в 3х сеансах с разными разделителями все равно вылетел конфликт блокировок
20 Reaper_1c
 
06.02.15
13:18
(0) Разделитель на технологическом уровне реализован как дополнительное поле во всех таблицах БД, которое включается в кластеризованные индексы первым по порядку. Комфортная работа при работе с отключенным разделением обеспечивается установкой отборов по значению разделителя, без этого будете иметь тотальное замедление.

(19) Ни о чем не говорит без указания количества записей в таблицах и количества модифицируемых данных в рамках одной транзакции.
21 ILoJes
 
06.02.15
13:39
(20) Запущена стандартная обработка по перепроведению документов, документов по 500 ПН и 500 РН в каждом сеансе, при этом в ПН 1 строка, соответственно делаются движения из одной строки в регистре бух и регистре накопления, в РН - 2 строки, и соответственно делаются по 2 зеркальных записи...
Изначально пару раз отработало нормально, потом был добавлен запрос по регистру накопления при проведении РН, для того, чтоб увеличить нагрузку на регистр. После этого 2 раза запускалось перепроведение и в обоих случаях появлялся конфликт блокировок.
И опять же - это примитивнейшая тестовая конфа с парой доков,регистров и реквизитов, на реальной, с десятком регистров и десятками строк в ТЧ, с различными проверками, страшно даже представить что будет
22 H A D G E H O G s
 
06.02.15
13:42
(21) И че?

Ты даже не сказал, какого типа блокировка - управляемая или СУБД.

По СУБД - конфликт блокировок легко словить на indexscan-е.
23 ILoJes
 
06.02.15
14:01
(22) Программно я никаких блокировок не устанавливал, т.е. наверное, СУБД

во-вторых - смысл тогда мне от этого механизма, если 6 фирм начнут в одной базе в конце месяца перепроводить все свои документы и понесется "веселье"
24 H A D G E H O G s
 
06.02.15
14:04
(23) Конфа на автоматических блокировках?
25 ILoJes
 
06.02.15
14:51
(24) Нет, на управляемых
26 Гёдза
 
06.02.15
15:09
а регистры то разделял?
27 ILoJes
 
06.02.15
15:17
(26) Тю, ну естессно, и регистры разделены и документы
28 ILoJes
 
06.02.15
16:39
Перенес самописку свою со своего файлового варианта на СКуЛьный сервер, все перепровелось без конфликтов блокировок, но в несколько раз медленней чем на локальной файловой
29 Reaper_1c
 
06.02.15
16:53
http://goo.gl/cLLpHF

Вот же... деревообрабатывающая птица.
30 H A D G E H O G s
 
06.02.15
16:55
Мдать.
31 Dolphinbet
 
06.02.15
16:56
(28) а смысл на файловом варианте что-то проверять?)
32 ILoJes
 
06.02.15
17:06
(31) Смысл в том, чтоб протестировать механизм, который описан общими фразами, и про который фиг что то реально детально описанное найдешь в инете :)
33 Dolphinbet
 
06.02.15
17:10
я вообще не думал, что кому-то в голову придет тестировать блокировки на файловой базе)
34 ILoJes
 
06.02.15
17:12
тестировались изначально не блокировки, а механизм разделителя данных, а как конкретно он работает нигде толком не написано, хотя можно догадываться, что просто добавляется в соответствующие таблички дополнительная колонка и по ней 1с дополнительно условие отброра в запросы вставляет
35 H A D G E H O G s
 
06.02.15
17:16
(34) На ИТС все написано.