Имя: Пароль:
1C
1С v8
Пятничная история: производительность файловой базы
0 mistеr
 
06.10.17
11:52
Жила-была файловая база. Не очень большая, на 1.2 Гб. Работали с ней несколько пользователей, по сети и локально. Однажды что-то там торкнуло, глюкнуло, и она перестала открываться. Вызвали пользователи умельца 1С-ного, он смотрит - действительно не открывается, виснет после ввода пароля, конфигуратор тоже. Из инструментов под рукой в тот момент был только chdbfl.exe, прогнал его - стала открываться. Прогнал ТИИ - без серьезных ошибок, пара битых ссылок не в счет. На том и порешили.

Это была присказка, а сказка впереди. Через некоторое время стали жаловаться пользователи — тормозит, мол, сильно, долго отчеты открываются, особенно по сети. Приходит умелец снова, смотрит — действительно, простая оборотка по счету минуту и больше формируется. Взял умелец базу с собой и стал над ней колдовать.

Простые колдунства вроде выгрузки-загрузки или ТИИ в разных видах результата не дали. Точнее дали, но совсем мало — порядка пары процентов. Тогда взял умелец инструмент точный, Process Monitor называется, и стал измерять, что же с базой происходит при формировании этой несчастной оборотки. И видит, что чтения из базы происходит аж на 300 Мб. Берет старый бэкап этой базы, когда еще с ней все хорошо было, делает то же самое — разница в 10-12 раз. Непорядок.

Ладно, думаю, что тут может быть? Может итоги не используются, может испортились как-то (хотя пересчет делал)? Я формировал оборотку за 2015 г. Ставлю границу итогов на 31.12.2014, формирую, измеряю. И тут у меня глаза на лоб лезут — быстро формируется, чтения в пределах пары мегабайт. Ставлю границу итогов на 31.21.2015 — снова большие цифры, как будто не используются итоги. Пробую с другими годами — то же самое, за пределами границы итогов быстро, а внутри рассчитанного периода долго.

Вот такая чертовщина. Есть мысли?
1 DmitrO
 
06.10.17
11:58
Ох уж эти сказочки, ох уж эти сказочники, ох эти файловые базы.

Есть мысли не использовать файловые базы хотя бы без веб-сервера с ИБП.
2 h-sp
 
06.10.17
11:58
(0) потереть справочник СохраненныеНастройки. Он очень быстро засоряется всякой всячиной.
3 Ёпрст
 
06.10.17
11:58
загнать в скль и посмотреть профайлером план выполнения запроса
4 Филиал-msk
 
06.10.17
11:58
(0)
> Вызвали пользователи умельца 1С-ного
> Взял умелец базу с собой
> Ставлю границу итогов

Не удержался ты в рамках стиля, зачем начинал-то?
Выгрузи в dt, загрузи обратно, итоги пересчитай. Фрагментация, она такая.
5 H A D G E H O G s
 
06.10.17
11:58
(0) Перейти на sql
6 assasu
 
06.10.17
12:01
(0) в конце завалил. не выдержал стилистику.
7 assasu
 
06.10.17
12:02
(0)учись у классиков
8 Serg_1960
 
06.10.17
12:19
(офф) "не выдержал стилистику" - ничего вы не понимаете в плюшках. "Сам себя не похвалишь - никто не похвалит"(с) Автор сам себя пропиарил между делом, для особо непонятливых прямым текстом заявил что автор - "умелец 1С-ный"(цы). Ха-ха: эта ветка - подтверждение сомнений автора в достоверности вышесказанного :)
9 Дмитрий
 
06.10.17
12:33
Ставлю границу итогов на 31.21.2015

О_о
10 mistеr
 
06.10.17
12:39
Насчет стилистики извиняйте, не писатели мы. То есть писатели, но по другой части. Да и не в этом суть.

Про SQL, терминал, SSD и т.д. не надо, пожалуйста. Это история для тех, в ком еще не угас дух исследователя.

(3) Вот это неожиданно. А чего не в Оракл, например?
11 Fragster
 
гуру
06.10.17
12:40
отключить итоги, реструкторизировать, включить итоги
12 mistеr
 
06.10.17
12:52
(3) Хотя, если подумать, резон есть. Увидеть использование/неиспользование итогов можно.

(11) Реструктуризация с пересчетом итогов была. Мало? Или под "отключить" ты имеешь в виду УстановитьИспользованиеИтогов()?
13 Fragster
 
гуру
06.10.17
13:18
(12) да, выключить нафиг. и еще посмотреть артефакты в таблице движений и субконто. например выгрузить в XML, грохнуть всё, загрузить из XML обратно
14 mistеr
 
06.10.17
17:09
(11) Как ни странно, помогло. Теперь все ровно. В смысле быстро за любой период. Разброс есть, но он соответствует объему данных за период.

Вот думаю, может с регистрами накопления такой же финт проделать?
15 Fragster
 
гуру
06.10.17
17:26
(14) только если проблема с таблицей итогов
16 mistеr
 
06.10.17
18:38
(15) Спасибо.
17 mistеr
 
06.10.17
18:42
Кстати, пока ковырялся, заметил интересную вещь с итогами. Если запрашиваемый период ближе к текущим итогам, чем к границе рассчитанных, то текущие берутся как база, а остальные рассчитываются по движениям "назад".