Копия базы 1С для отчетов. Как работать с репликой только для чтения

Публикация № 1283828 30.04.22

Администрирование БД - HighLoad оптимизация

Подходы к работе с репликами только для чтения. Практические способы перевода OLAP-нагрузки из основной базы в копию и новые возможности масштабирования.

Старая проблема

Любовь к монолитам идет от самой фирмы "1С" и простирается на большинство ее партнеров и клиентов. Многие информационные системы на базе платформы 1С построены в виде единого монолита, где ведется как оперативная работа и выполнение различных регламентных операций, так и сбор разного рода отчетности.

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

Для небольших систем это не критично, но если в базе работают сотня и больше пользователей, то монолит может начать сбоить, т.к. OLTP и OLAP нагрузки начинают конкурировать друг с другом за ресурсы. Обычно не в пользу первой.

Отсюда и появляется проблема с производительностью и надежностью. Особенно в периоды закрытия месяца и подобных "особых" периодов. Тормозит ли ваша база в период закрытия или годовой отчетности? Если да, то сочувствую. Думаю, у Вас есть архитектурные проблемы. Или проблемы с железом и пора добавить 6 ТБ оперативной памяти! (это шутка, пощадите ваших админов!).

Ниже мы поговорим о путях решения подобных проблем, рассмотрим некоторые варианты. Основное направление - это вынос отчетной, OLAP нагрузки из основной базы, чтобы никакая отчетность больше не влияла на оперативную работу. Альтернативный путь разбивания монолита на сервисы рассматривать не будем, оставим это для другой истории.

Первое, что приходит в голову

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

Этот вариант мы рассматривать не будем, так как он имеет существенные недостатки, с которыми придется героически бороться:

  • Снижение производительности и параллельности работы пользователей, особенно при использовании планов обмена.
  • Повышенная нагрузка на сервер 1С как основной базы, так и копии, ведь все операции нужно более-менее дублировать.
  • Сложность в сопровождении из-за потенциальных ошибок в обмене данными, ошибок в конфигурации и так далее.

Для небольших баз это все может быть не критичным, но нужна ли для них копия:)

Если вы считаете, что обмен средствами 1С все же хороший вариант для больших баз, то рекомендую здесь на ИС ознакомиться с опытом коллег.

В общем, этот вариант только для фанатов 1С. Бесстрашных и упрямых.

Какие еще варианты

В статье "Копия базы 1С для отчетов. Или как выжить с тяжелой отчетностью" мы рассматривали разные способы создания копии базы данных для отчетности:

Кроме этого можно создавать копию через механизм доставки жарнала транзакций с учетом всех ограничений этого механизма.

Бэкапирование создает копию, которую платформа 1С может использовать без ограничений, т.к. в базу все также возможна запись данных, но актуальность данных будет сильно страдать в такой базе.

Репликация и AlwaysOn позволяют создать копию базы данных практически в онлайн режиме, но она будет доступна только для чтения. По умолчанию платформа 1С с такими базами работать нормально не сможет. Особенности работы платформы 1С с базами только для чтения описаны в этой инструкции. Самые простые способы подружить платформу 1С с такими базами это:

  • Использовать толстый клиент обычного приложения, предварительно убрав из конфигурации выполнение операций записи при запуске клиента.
  • Опубликовать веб-сервисы и через них обращаться к этой копии.

Также есть более "правильные", но дорогие способы работы с копиями базы в режиме только для чтения, при этом в более удобном виде:

  • Компания Softpoint реализовала готовый продукт Data Cluster, которая позволяет выполнять балансировку запросов между серверами. Другими словами, это промежуточное ПО позволяет отправлять читающие запросы на онлайн-копии базы данных, причем это происходит незаметно для клиента базы данных. В том числе и для платформы 1С.
  • Сама фирма "1С" реализовала механизм копий баз данных, доступный с лицензией КОРП. Также позволяет создавать копии баз данных и отправлять выполнением запросов на различных серверах.

Но можно пойти и другим путем, который даст больший контроль над процессом создания и использования копий, а также не требует покупки лицензий стороннего ПО или дополнительных лицензий.

Выбираем способ создания копии базы

Первое, что мы выберем - это способ создания копии базы данных. Тут исходим из того, что доступно.

Для SQL Server (подробная информация о доступности функционала в разных редакциях и лицензировании):

Для PostgreSQL:

В нашем случае выберем механизм групп высокой доступности AlwaysOn из SQL Server. Будем создавать онлайн-копию базы только для чтения именно этим способом. Информацию по настройке AlwaysOn можете посмотреть здесь.

Вы можете выбрать любой другой подходящий способ. Главное создать копию в режиме "только для чтения".

Почему платформа не работает

Прежде чем что-то делать нужно ответить на вопрос: "Почему платформа 1С не работает с базами в режиме только для чтения?".

Если попытаться добавить такую базы в кластер 1С и запустить клиентское приложение, то с высокой вероятностью Вы получите такую ошибку.

Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/modules/call:
по причине:
Соединение с сервером баз данных непригодно для использования после разрыва соединения администратором и будет переустановлено.
Microsoft SQL Server Native Client 11.0: Failed to update database "YourDatabaseName" because the database is read-only.
HRESULT=80004005, SQLSrvr: SQLSTATE=25000, state=2, Severity=10, native=3906, line=1

Причина проста - платформа пытается записать изменения в служебные таблицы, например в "_SystemSettings" таким запросом:

INSERT INTO dbo._SystemSettings (
    _UserId,
    _ObjectKey,
    _SettingsKey,
    _Version,
    _SettingsPresentation,
    _SettingsData,
    _DataSeparationUse16249,
    _DataSeparationUse16250,
    _Fld2293,
    _Fld774) 
VALUES(@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10) 

Такую же ошибку можно получить и при явных операциях изменения данных над объектами базы (справочников, документов и так далее).

Больше всего шансов поймать такую ошибку при использовании клиента в управляемом приложении, т.к. операций записи изменений там происходят гораздо чаще. Например, в таблицу историй действий пользователей "_UsersWorkHistory", в которой сохраняется информация об использовании форм пользователем. В обычном приложении эта таблица не используется.

Вот список служебных таблиц, в которые платформа 1С может попытаться выполнить запись, даже если никаких действий в базе 1С не выполнять:

  • V8Users
  • DBSchema
  • SchemaStorage
  • Params
  • Files
  • _FrmDtSettings
  • DepotFiles
  • IBVersion
  • Config
  • ConfigCAS
  • ConfigCASSave
  • ConfigSave
  • _UsersWorkHistory
  • _SystemSettings
  • _DynListSettings
  • _CommonSettings
  • _ExtensionsInfo
  • _ExtensionsInfoNGS
  • _ExtensionsRestruct
  • _ExtensionsRestructNGS
  • _YearOffset

Получается, что если мы сможем показать платформе 1С, что запись в эти таблицы возможна без каких-либо ошибок, то проблем с работой в базах с режимом "только для чтения" не будет.

Хитрый ход

Но как можно "обмануть" платформы 1С? Ведь копия базы недоступна для изменения. Но выход есть всегда!

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

Например, у нас есть база "BSL-ORIG" на основном сервере SRV-SQL-1. Подключена к серверу 1С обычным образом, все работает штатно. Через механизм групп высокой доступности AlwaysOn сделана копия этой базы на SRV-SQL-2. Копия, конечно же, доступна только для чтения.

Создаем пустую базу на SRV-SQL-2, назовем ее "BSL_COPY". Она и будет располагать все необходимые объекты базы. И именно к ней будет обращаться сервер 1С для работы.

Но прежде, чем пустить платформу 1С в огород базу нужно выполнить подготовительные действия.

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

Готово! Наша "заглушка" реплики готова для использования.

Все аналогичные действия как-раз выполняются инструментом "Мастер создания копии информационной базы для отчетности", который Вы можете использовать в качестве шаблона для своей разработки.

Попробуем в ней поработать.

Тестовый запуск

Добавим в кластер 1С информационную базу, которая будет ссылаться на нашу "базу-заглушку". Запускаем тонкий клиент и ... барабанная дробь!

Клиентское приложение запустилось без ошибок! Мы даже "походили" по разделам и некоторым объектам. Попробуем изменить какие-нибудь данные.

И ничего не произошло, наша защита изменений отработала! Сформируем какой-нибудь отчет для очистки совести.

Дело сделано!

Вместо заключения

В самом начале мы говорили про монолиты и решения проблем производительности в них. С помощью таких копий баз данных мы можем выполнять горизонтальное масштабирование базы за счет новых серверов. И это прекрасно! Наверное.

Теперь мы можем использовать базы 1С в режиме "только для чтения" в привычном режиме, запускать клиентов 1С туда. Что это значит:

  • Можно создавать копии баз на других серверах и переносить туда работу пользователей, которые не изменяют данные в базе. Как побочный эффект мы получим защиту от изменения данных. Для аудиторов, например, отличный вариант.
  • Можно опубликовать такую базу на веб-сервере, добавить необходимые веб-сервисы или HTTP-сервисы и через них получать данные для использования в основной базе. Таким образом можно организовать масштабирование системы.
  • Данный подход может работать на любой версии платформы 1С от версии 8.0 до последних релизов. На скриншотах выше все примеры сделаны на 8.3.20.1710.
  • Срабатывание защиты от изменений может вызвать непонимание пользователей, ведь никаких сообщений им не выводится. Поэтому рекомендуется сделать изменение прав доступа пользователям в копии так, чтобы само редактирование не было доступно срадствами платформы 1С. Плюс изменить заголовок приложения, чтобы было понятно, что это копия.
  • Не забудьте отключить регламентные задания в копии базы. Если они там не нужны явно :)

Можно придумать также множество нестандартных применений для такой работы с базой:

  • В базе-заглушке можно создавать представления СУБД с понятными наименованиями, которые будут ссылаться на таблицы реплики. Интеграция таких инструментов как PowerBI теперь не потребуют обращения к оперативной базе данных.
  • Так как таблицы конфигурации в базе-заглушке доступны для изменения, то можно в такой базе обновить конфигурацию, если изменения не влияют на структуру данных. То есть можно обновлять конфигурацию и проверять работу еще до применения изменений на основной базе.
  • Если используется AlwaysOn, то можно использовать снапшоты в реплике на определенные моменты времени. Тогда можно получить копии базы на утро, например, и работать с ними. Может быть полезно, если людям нужна стабильная версия данных на момент времени для сбора отчетности. А пересоздавая снапшот в режиме скользящего окна, можно каждый день иметь актуальный срез базы данных на определенный момент времени.
  • Если стоит задача создания копий распределенных, например в разных городах, то можно создать реплику с помощью распределенной группы доступности AlwaysOn в отделенной точке и сделать для нее базу-заглушку. Так люди географически отдаленные от основной базы смогут работать с ней максимально эффективно. Смотрите схему выше, теперь это возможно и с информационными базами 1С.
  • В примерах мы используем SQL Server, но все справедливо и для PostgreSQL со своими нюансами. О последнем примеров не планирую. У кого "красные глаза", тот сам знает, как это все организовать по аналогии :)
  • И много других применений.

Есть ли какие-то минусы у этого подхода? Конечно! Усложнение сопровождения и необходимость в понимании работы СУБД. Если Вы не хотите выходить из зоны комфорта 1С, то это явно не для Вас.

Почему не сделать платный / готовый инструмент, который упростит настройку и создание таких копий баз? Мне это не интересно. Организация поддержки и консультаций - это не мое. Но вся информация теперь есть у Вас, действуйте!

Спасибо, что дочитали до конца. Удачи в делах и хорошего настроения! Вперед к свершениям!

Другие ссылки

Авторские разработки

 
 Другие разработки (бесплатные и за $m)

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. naa1c 40 30.04.22 23:41 Сейчас в теме
огонь) плюс если есть таблицы, которые хранят всякие настройки типа вариантов отчетов, то их тоже можно скопировать и сделать доступными для записи, у пользователей в копии будет возможность их сохранять.
mrChOP93; rpgshnik; Shmell; YPermitin; +4 Ответить
2. YPermitin 12434 30.04.22 23:48 Сейчас в теме
(1) абсолютно верный ход мыслей!
3. dubrovin 01.05.22 08:51 Сейчас в теме
С возвращением в родной огород
Добавил статью в закладки :)
VVi3ard; YPermitin; +2 Ответить
4. ser6702 129 01.05.22 10:05 Сейчас в теме
Интересно всегда зачем и почему

1. Почему нельзя сделать из копии readonly рядом базу rewritable?

2. Если можно установить монопольный доступ то почему нельзя сразу перевести репликацию в?
alt er database [1c_base_repl] set read_write
7. YPermitin 12434 01.05.22 13:07 Сейчас в теме
(4) это возможно реализовать, но будет противоречить концепции работы самой платформы 1С, т.к.разработчики отказались от механизмов репликации СУБД в пользу собственных планов обмена. Но с некоторыми "трюками" такое сделать можно.

Но в этом случае это будет не AlwaysOn, а один из методов репликации (https://github.com/YPermitin/SQLServerTools/tree/master/SQL-Server-Replication-And-High-Availability).

Но это совсем другая тема. Не понятно зачем это использовать в рамках 1С. Есть более простые сопосбы реализации подобного, а 1С отсавить можно только в качестве бэкофиса, потребителя данных конечных, которые этими репликациями формируются.

Это если совсем кратко.
20. ser6702 129 04.05.22 00:09 Сейчас в теме
(7) Добрый день! Возможно вы правы, но мне не хватает знаний чтобы самостоятельно обосновать вашу правоту.

Я примерно такой ответ ожидал, без апеллирования к концепции платформы:

Пользователь будет тратить на выполнение этой задачи в зависимости от таких то и таких то параметров вместо нынешних 2...5 человеко-часов в день не более 1 человеко-часа в месяц

Или.. на получение одинаковых отчетов... потребуется втрое... впятеро меньше вычислительных ресурсов... потому что...

Итак есть база репликации read_write
Есть база для отчетов вашим методом

В вашем случае "что" будет "быстрее", где будет "больше" или чего "меньше"?
23. YPermitin 12434 04.05.22 10:08 Сейчас в теме
(20) вопрос в вакууме. Ответа не смогу дать.
31. VVi3ard 50 21.06.22 14:57 Сейчас в теме
(20) Тут вопрос не в том будет быстрее или нет. К этому приходят компании у которых уже просто жопа и топовое железо на СУБД уже захлебываются, и они рады бы куда то засунуть еще 30 млн рублей что бы это хоть как то заработало, но уже некуда.

И тогда вынести хотя бы 30% нагрузки на другую СУБД это спасение, даже если для этого придется нанять грамотного DBA, DBA в такой компании без дела не останется, так что это полезная инвестиция.

Способ мне понравился, возьму на заметку.
5. quazare 2104 01.05.22 10:13 Сейчас в теме
Сытые админы, сидящие в зоне комфорта на зарплате не заинтересованы в скорости выполнения отчётов. Статья интересная
Fox-trot; Brawler; +2 Ответить
6. YPermitin 12434 01.05.22 10:38 Сейчас в теме
(5) слово "админы" можно заменить и на "разработчики"
8. PerlAmutor 127 01.05.22 14:14 Сейчас в теме
Я правильно понимаю, что такое решение потребует от пользователей работать сразу в двух базах и ничто их не остановит от формирования отчетов в основной базе?
10. YPermitin 12434 01.05.22 15:15 Сейчас в теме
(8) это не решение, а способ масштабирования.

Как будут работать пользователи - решать вам. Можно и в копии, а можно из основной базы дергать копию, можно на копии только регламенты какие-то оставить (рассылка отчетов или подобное) и многие другие варианты.

Тут надо от проблемы отталкиваться.

Остановить пользователей - это не к теме статьи)))))
9. maxx 955 01.05.22 14:36 Сейчас в теме
А механизм копий одной базы данных 1с который появился недавно, это об этом же?
11. YPermitin 12434 01.05.22 15:17 Сейчас в теме
(9) и да и нет.

Механизм копий про масштабирование, но с ограничениями по базе, лицензиям.

Таким способом можно создать копии где угодно и с минимальным отставанием.

Тут лучше почитать мануалы по этой теме, чтобы на своих задачах примерить.

То что в статье не конкурент копиям от 1С. Это нечто другое.
12. Andreynikus 1208 01.05.22 18:27 Сейчас в теме
Юра, с возвращением!
Спасибо за статью!
YPermitin; +1 Ответить
13. YPermitin 12434 01.05.22 19:42 Сейчас в теме
14. BackinSoda 01.05.22 20:06 Сейчас в теме
А можно ли сделать bsl-copy базу на том же sql-сервере/инстансе, или это противоречит понятиям always on и вообще?
15. YPermitin 12434 01.05.22 20:38 Сейчас в теме
(14) она и так находится на том же сервере, где находится копия базы (реплика). Чтобы из нее читать данные через view'хи (представления).

А делать ее рядом с основной базы вроде как нет смысла. Зачем база-заглушка для основной базы может понадобиться.
16. Glebis 11 02.05.22 09:40 Сейчас в теме
Можно ли задействовать в отчётах продуктивной БД обращение к базе-заглушке через новый механизм отчётов 1С по настройке требуемой актуальности данных при выборе базы для запроса?
17. YPermitin 12434 02.05.22 11:54 Сейчас в теме
(16)
новый механизм отчётов 1С по настройке требуемой актуальности данных


Нет, Вы смешиваете разные механизмы.

Но никто не мешает проверять актуальность данных в реплике штатными для СУБД средствами. Реализация проверки будет разной для типов создания реплики.

Например, можно сделать константу в 1С числового типа. В основно базе она всегда будет равна 0, а в копии подменить ее на предсавление БД, которое будет отбирать время с последней пришедшей транзакцией. Так можно убдет простым запросом к константе определять актуальность реплики.
18. mmch 124 02.05.22 22:20 Сейчас в теме
Возможно что-то не понял, а разве реплика не будет перезатираться новыми данными которые придут из боевой, т.е. если отключить в реплике регламенты, он не включается обратно при очередном апдейте?
19. YPermitin 12434 02.05.22 22:31 Сейчас в теме
(18) Реплика всегда 1 в 1 с рабочей базой. Вы не можете изменить настройки регламентных в реплике отдельной от основной базы.

В статье я писал, что на копии нужно регламентные отключить (через кластер, или через типовые механизмы БСП, которые срабатывают на копии).

Если нужны регламентные, которые работают только на реплике, то это надо решить путем программного контроля, т.е. своими проверками.
Есть и другие способы, но это надо по ситуации смотреть.

Комментария будет мало :)
21. cdiamond 217 04.05.22 07:40 Сейчас в теме
Очень интересный подход, надо опробовать.
Единственное замечание - декомпозиция монолита на сервисы вовсе не означает автоматически что эти сервисы работают на разных серверах. Это всего лишь заложенная возможность масштабирования и разработки независимыми командами на различных стеках программирования. Поэтому если выйти на руководителя и сказать "давай распилим на сервисы, потому что можно будет разбить на 2-3 сервера и станет быстрее работать" - это будет искаженным видением картины.
22. YPermitin 12434 04.05.22 10:07 Сейчас в теме
24. Painted 42 04.05.22 15:39 Сейчас в теме
Не проще ли повесить триггер на эти особые таблицы (типа _UsersWorkHistory) в реплике, чтобы в них ничего не писалось? Тогда лишнюю копию не придется делать
25. YPermitin 12434 04.05.22 15:41 Сейчас в теме
(24) "Копия базы 1С для отчетов. Как работать с репликой только для чтения"
26. Painted 42 04.05.22 15:46 Сейчас в теме
(25) Понял, триггер не повесишь в реплике. А если и повесишь, то он затрется после репликации.
27. YPermitin 12434 04.05.22 15:49 Сейчас в теме
(26) в большинстве методов создания реплик, которые перечислены выше, СУБД даже не даст объект создать.
Поэтому да, база-заглушка тут решает.
28. the1 1075 05.05.22 11:51 Сейчас в теме
Я, пожалуй, в зоне комфорта останусь) За материал спасибо, расширил кругозор.
29. YPermitin 12434 05.05.22 14:04 Сейчас в теме
30. mixsture 11.05.22 15:32 Сейчас в теме
Кажется, еще забыли в статье упомянуть, что это тянет на нарушение лицензии 1с (вмешательство в работу БД в обход платформы) - и, соответственно, риск аннулирования лицензий. И хоть пока таких случаев я не слышал, но они вполне могут появиться в будущем.
И еще стоит отметить, что механизм сильно завязан на расположение данных в таблицах СУБД - т.е. некоторые смены версии платформы сами по себе будут провоцировать реверс-инжиниринг представлений заново.

Имхо, этот метод в статье технически тяжелый, рисков порядочно, а выгод предоставляет не так уж много. Я бы отметил только возможность хранения чего-то между бекапами (например, настроек отчетов) - ну так можно делать план обмена именно на эти настройки, а основной массив данных загружать разворачиванием бекапа.

Но как исследовательская работа - отличная.
32. VVi3ard 50 21.06.22 15:01 Сейчас в теме
Вы пишите с позиции "все нормально, но хочется лучше" в этом случае да все что описано в статье не стоит затраченных усилий.

Но если ситуация "работать не возможно" то затраты на поддержание работы системы не такие уж и большие, а риски вообще ничтожные по сравнению с невозможностью работы всего предприятия в одной СУБД.
Оставьте свое сообщение

См. также

Диспетчер Хранилища Запросов в SQL Server 2016+ (он же Query Store) Промо

HighLoad оптимизация Бесплатно (free)

Если вы используете SQL Server 2016 или более позднюю версию, то у вас есть возможность использовать встроенную систему мониторинга, которая позволяет отслеживать самые базовые метрики выполняемых запросов и статистику ожиданий (потребления ресурсов). Эта информация позволяет быстро получить самые ресурсоемкие запросы с их планами и агрегированной статистикой выполнения.

26.04.2019    14994    Aleksey.Bochkov    7    

Производительный режим работы RLS

HighLoad оптимизация Роли и права v8 8.3.14 8.3.6 8.3.8 ERP2 БП3.0 КА2 Бесплатно (free)

Функционал подсистемы УправлениеДоступом позволяет работать с RLS в двух режимах: стандартном и производительном. Каждый из режимов имеет свои преимущества и недостатки относительно другого. Основные из них будут рассмотрены в данном материале.

14.06.2022    1704    Neti    6    

Любовь. Быстродействие. 1С

HighLoad оптимизация v8 Бесплатно (free)

Несколько эпизодов на общую тему, собранные за последние полгода. Первый вариант, будет исправляться и дополняться.

26.05.2022    2436    vasilev2015    20    

Оптимизация высоконагруженных конфигураций: история маленькой победы, или советы тем, кто столкнулся с проблемой впервые и не знает, что делать

HighLoad оптимизация Администрирование СУБД v8 8.3.14 ERP2 Россия Бесплатно (free)

Пост будет больше интересен руководителям отделов ИТ сопровождения или проектным менеджерам, перед которыми будет стоять задача решения проблемы деградации производительности баз данных 1С. Пост для тех, кому эта тема нова, нет особого опыта, и с ходу непонятно, с чего начать.

24.05.2022    2597    avolsed    15    

Опыт миграции из собственного датацентра в облако AWS Промо

HighLoad оптимизация Бесплатно (free)

Хотя данная публикация и не имеет прямого отношения к 1С, она может быть интересна тем, кто занимается крупными базами данных на MS SQL Server. Описывается опыт миграции баз данных в облако AWS в компании glassdoor.com, где я занимался этим проектом. Это первый драфт текста, получившийся довольно скомканным - в процессе буду дополнять.

29.07.2018    12588    Aleksey.Bochkov    9    

Исправляем проблемы производительности в конфигурации ERP - 7 примеров

HighLoad оптимизация v8 ERP2 УТ11 КА2 Бесплатно (free)

Злободневные примеры поиска и исправления проблемных мест в конфигурациях ERP/УТ/КА на СУБД Postgres.

23.05.2022    2574    ivanov660    25    

Заметки эксперта. Расследование длительного выполнения отчета “Движение ТМЦ и затрат в производстве” (1С:ERP 2)

HighLoad оптимизация v8 ERP2 Бесплатно (free)

Кратко: в ходе проведения нагрузочного тестирования “1С:ERP 2” под ОС Linux на СУБД Postgres выявлено существенное замедление формирования отчета “Движение ТМЦ и затрат в производстве” - до 60 минут. После проведенного расследования и точечной корректировки СКД в отчете, без изменения бизнес-логики результатов его работы, работа отчета была ускорена в 80 раз - средний показатель формирования составил 30 секунд.

19.05.2022    1373    it-expertise    19    

Нагрузочное тестирование 5000+ пользователей онлайн — играем в игру

HighLoad оптимизация Тестирование QA Бесплатно (free)

Тестируем ERP под Postgre SQL. Альтернативный нагрузочный тест.

16.05.2022    4273    ivanov660    50    

Опыт оптимизации и контроля производительности в БД с 3000 пользователей Промо

HighLoad оптимизация Бесплатно (free)

Данная статья написана по материалам доклада, прочитанного на Конференции Инфостарта IE 2014 29-31 октября 2014 года. Меня зовут Сергей, являюсь руководителем отдела оптимизации и производительности систем в компании "Деловые линии". Цель этого доклада – поделиться информацией о нашем опыте работы с большой базой на платформе 1С, с чем пришлось столкнуться, как удалось обеспечить работоспособность. Уверен, что вам будет интересно, так как подобной информацией мало кто делится, да и про само существование таких систем их владельцы стараются не рассказывать, максимум про это «краем глаза» упоминают участвовавшие в проекте вендоры. **update от 04.03.2016 по вопросам из комментариев

05.08.2015    68900    Sergey.Noskov    119    

Тестирование - игровое моделирование

HighLoad оптимизация Тестирование QA v8 Бесплатно (free)

Мы рассмотрим подход к тестированию с применением элементов искусственного интеллекта

25.04.2022    894    ivanov660    0    

Анализ кода, потребляющего ресурсы СУБД MS SQL, контекстами 1С

HighLoad оптимизация Бесплатно (free)

На сервере СУБД ресурсы используются как системными операциями, так и кодом выполняемых приложений. Рассмотрим, чем могут быть полезны метрики СУБД и как их можно использовать для анализа выполняемого кода приложений.

21.04.2022    1369    pashamak    1    

Несколько слов про платформенный механизм оптимизации RLS

HighLoad оптимизация v8 Бесплатно (free)

Смотрим, как работает платформенный механизм оптимизации RLS, сравним поведение на разных СУБД MS SQL, Postgres 11,13,14.

07.04.2022    2710    ivanov660    21    

Долго открывается конфигуратор Промо

HighLoad оптимизация v8 1cv8.cf Бесплатно (free)

В ОС Windows Server 2012 бывает полезно выключать службу Dynamic Fair Share Scheduling (DFSS позволяет балансировать и распределять ресурсы между пользователями), чтобы повысить производительность 1С:Предприятие 8 в ряде случаев.

22.04.2015    45477    Gilev.Vyacheslav    1    

Почему после обновления Бухгалтерии в марте 2022 года отчеты стали такими медленными

HighLoad оптимизация v8 v8::БУ БП3.0 БУ Бесплатно (free)

Статья раскрывает причину, почему время формирования отчетов после обновления Бухгалтерии в марте 2022 сильно увеличилось. И рассказывает, как можно исправить ситуацию.

05.04.2022    3314    DBOdin_Lab    25    

Экспертный кейс. Расследование фатального замедления времени расчета себестоимости в 1С:ERP 2

HighLoad оптимизация Механизмы типовых конфигураций Запросы v8 ERP2 Бесплатно (free)

При выполнении нагрузочного тестирования информационной системы на базе 1С:ERP для одного из клиентов с целью оценки возможности миграции системы на PostgreSQL и Astra Linux мы столкнулись с неприемлемым увеличением времени выполнения расчета себестоимости. Строго говоря, сценарий тестирования закрытия месяца не был выполнен вообще – он не укладывался в таймаут выполнения теста, 24 часа. По прошествии 18 часов всё ещё шло выполнение операции «Распределение затрат и расчет себестоимости». Более 16 часов выполнялся подэтап “Расчет партий и себестоимости. Этап. Расчет себестоимости: РассчитатьСтоимость”. Всё это время выполнялся запрос, который в текущей инфраструктуре клиента (СУБД MS SQL Server) выполняется чуть более 3 минут на аналогичных данных.

25.03.2022    3524    it-expertise    92    

Экспертный кейс. Расследование деградации производительности системы. Проведение документа “Поступление товаров и услуг” (1С:ERP 2)

Механизмы платформы 1С Запросы HighLoad оптимизация v8 ERP2 Бесплатно (free)

В ходе проведения нагрузочного тестирования одним из наших клиентов была выявлена сильная деградация производительности системы в целом и, в частности, выполнения ключевой операции “Проведение документа поступление товаров и услуг” в течение выполнения теста. Согласно данным подсистемы БСП “Оценка производительности”, время выполнения ключевой операции “Проведение документа поступление товаров и услуг” возрастало в процессе тестирования с 15-20 секунд в начале тестирования до 150-200 секунд в его финале.

02.03.2022    2990    it-expertise    47    

Видеодемонстрация применения Теста-центра для нагрузочного тестирования конфигураций Промо

HighLoad оптимизация v8 1cv8.cf Бесплатно (free)

Тест-центр – инструмент автоматизации многопользовательских нагрузочных испытаний информационных систем на платформе 1С:Предприятие 8. С его помощью можно моделировать работу предприятия без участия реальных пользователей, что позволяет оценивать применимость, производительность и масштабируемость информационной системы в реальных условиях. В видео показан пример с внедрением конфигурации Тест-центра в произвольную информационную базу и создание простого сценария нагрузочного теста.

16.09.2012    36882    Aleksey.Bochkov    29    

Пример пошагового решения проблемы производительности на базе Postgres SQL с картинками

HighLoad оптимизация Технологический журнал v8 Бесплатно (free)

Рассмотрим по шагам процесс обнаружения, анализа и решения проблемы производительности на примере базы ERP, сравним отличия в работе Postgres и MS SQL.

28.02.2022    7935    ivanov660    18    

Генератор представлений для базы данных 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка для генерации скриптов создания представлений баз данных 1С. Поддержка SQL Server + некоторые служебные функции.

10 стартмани

20.02.2022    5221    4    YPermitin    0    

Ускорение работы конфигуратора 1С с большими прикладными решениями

HighLoad оптимизация v8 Бесплатно (free)

Ускорение работы 1С конфигуратора с большими прикладными решениями путем размещения системных каталогов 1С на RAM диске.

13.01.2022    5697    stg2005    105    

Повышенная нагрузка на диски сервера баз данных SQL Server Промо

HighLoad оптимизация Бесплатно (free)

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

15.03.2015    46921    gallam99    17    

AMD RYZEN 5600X: погоня за попугаями

HighLoad оптимизация Бесплатно (free)

Все по-взрослому...

08.12.2021    4485    starik-2005    141    

Ошибка производительности при проведении этапа 2.2 в ERP 2.4 и ERP 2.5

HighLoad оптимизация v8 ERP2 Россия Бесплатно (free)

Хочется поделиться одним подводным камнем, с которым могут встретиться другие пользователи ERP. Искал решение в интернете, но ничего похожего не нашел. Поэтому решил создать эту тему.

06.12.2021    1188    Rokky78    6    

Инструкция по получению плана запроса через Extended Events

HighLoad оптимизация Бесплатно (free)

Доброго времени суток, коллеги. Хочу рассказать, как можно посмотреть план запроса через механизм Extended Events. Я хочу ответить на вопрос - как разработчику через SQL Management Studio посмотреть, что запрос, который он сделал, работает оптимально. На Инфостарте есть несколько статей, которые посвящены трассировкам в этом механизме. Мне, когда я не понимал, как это правильно делать, не хватало простой пошаговой инструкции. Я напишу инструкцию, выполняя которую можно будет увидеть план запроса, который выполняется из базы данных.

22.11.2021    1484    Andrei_Ivanov    3    

Как можно "положить" SQL сервер с помощью обычной консоли запросов 1С Промо

HighLoad оптимизация v8 1cv8.cf Бесплатно (free)

Описано как из 1С, с помощью безобидной на первый взгляд обработки, можно сделать неработоспособным SQL сервер. Предложены меры, позволяющие избежать этого.

22.01.2014    70352    yuraos    112    

Подходы к организации информационной безопасности в корпоративных проектах

HighLoad оптимизация Государственные, бюджетные структуры 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Оформили в виде статьи наш доклад на недавно прошедшем семинаре партнеров 1С на тему требований к информационной безопасности на проектах, с которыми всё чаще встречаемся мы и наши партнеры. В статье рассмотрено, почему этими вопросами стоит озаботиться уже сейчас. Куда бежать и что делать, если вы попали на проект с требованиями по информационной безопасности…

29.10.2021    3454    it-expertise    11    

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB HighLoad оптимизация v8 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    3001    sorter1    2    

Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности

HighLoad оптимизация Рефакторинг и качество кода Технологический журнал v8 Бесплатно (free)

Расскажем про инструменты, рассмотрим планы запросов, увидим, как отслеживать и бороться с проблемами производительности на боевой базе.

07.09.2021    7440    ivanov660    26    

Просмотр и анализ журнала регистрации (отчет на СКД) Промо

Журнал регистрации v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Отчет на базе системы компоновки данных (СКД) для просмотра записей журнала регистрации. В отчете можно использовать возможности СКД для вывода отчета в различных вариантах (список, таблица, диаграмма). Поддерживаются все возможности журнала регистрации (фильтры, получаемые колонки, максимальное количество записей).

5 стартмани

25.07.2013    80598    1152    YPermitin    60    

Показатель Page Life Expectancy (PLE)

HighLoad оптимизация Администрирование СУБД Бесплатно (free)

От переводчика: публикация составлена по материалам BrentOzar.com (Brent Ozar).

18.08.2021    2643    vasilev2015    6    

Кластер для отказоустойчивости

HighLoad оптимизация Администрирование СУБД Бесплатно (free)

На Infostart Meetup «PostgreSQL VS Microsoft SQL» выступил руководитель проектов в по разработке ПО в компании «Газинформсервис» Денис Рожков. В рамках доклада Денис рассказал о том, какие механизмы кластеризации используются для PostgreSQL и в MS SQL и поделился с коллегами, какие решения можно использовать для построения отказоустойчивого кластера на PostgreSQL.

18.08.2021    7066    FB_3393521717335803    2    

Адекватный параллелизм в 1С

HighLoad оптимизация v8 Бесплатно (free)

Параллелизм ускоряет выполнение тяжелых регламентных операций на СУБД, но может негативно влиять на работу многопользовательских учетных систем. О том, как анализировать влияние параллелизма и настраивать его для MS SQL и PostgreSQL, рассказал ведущий разработчик компании ООО МКК «Ваш Инвестор» Вадим Фоминых.

13.08.2021    7438    Shmell    7    

Ускорение реструктуризации таблиц Промо

HighLoad оптимизация Бесплатно (free)

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

12.09.2013    54108    OLEG4120    32    

Создаем счетчики производительности Windows для 1С

HighLoad оптимизация Бесплатно (free)

В статье описан подход, позволяющий создавать счетчики производительности Windows для 1С:Предприятие.

09.08.2021    4243    blackhole321    8    

Распространенные ошибки разработчиков, приводящие к проблемам производительности

HighLoad оптимизация Рефакторинг и качество кода v8 Бесплатно (free)

Рассмотрим примеры ошибок, анализ, исправление и мероприятия по недопущению подобного в будущем. Всего будет 18 примеров.

02.08.2021    12565    ivanov660    77    

Fill factor

HighLoad оптимизация Бесплатно (free)

От переводчика: Публикация составлена по материалам BrentOzar.com (Brent Ozar).

02.08.2021    3042    vasilev2015    6    

Ускоряем списание партий УПП 1.2 / 1.3 / УТ 10.3 Промо

HighLoad оптимизация v8 УТ10 УПП1 Бесплатно (free)

Не секрет, что многие пользователи, использующие партионный учет (а таких очень много, даже среди огромных холдингов, несмотря на пропаганду РАУЗ) при больших нагрузках сталкиваются с резким замедлением списания партий.

21.06.2013    59999    Антон Ширяев    117    

Parameter sniffing и генерация планов для разработчиков 1С

HighLoad оптимизация v8 Бесплатно (free)

Особенности генерации планов запросов. Статья написана по мотивам вебинара Виктора Богачева.

01.06.2021    11594    vasilev2015    17    

Экспорт технологического журнала. Набор инструментов (приложения + исходный код)

Технологический журнал Абонемент ($m)

Набор инструментов для экспорта данных технологического журнала во внешнее хранилище на базе ClickHouse для Windows и Linux. Готовое приложение и исходный код.

10 стартмани

09.05.2021    8159    18    YPermitin    32    

Поиск причин блокировок СУБД

HighLoad оптимизация v8 v8::blocking 1cv8.cf Бесплатно (free)

Расследование блокировок СУБД. Статья написана по мотивам вебинара Виктора Богачева.

28.04.2021    6816    vasilev2015    13    

Сравнение скорости работы 1C+MSSQL и файлового варианта Промо

HighLoad оптимизация v8 1cv8.cf Россия Бесплатно (free)

На форумах постоянно задается один и тот же вопрос: почему 1C+MSSQL медленнее обрабатывает запросы чем файловая? Затем обычно идет «флуд» на несколько десятков страниц. Есть два популярных «течения» в таких форумах — одни говорят что для клиент-серверного варианта это нормально, файловый вариант всегда должен работать быстрее, другие говорят что 1С плохо работает с субд. В результате «баталий и выяснения отношений» на форумах люди расходятся при своих мнения.

19.02.2013    62227    Gilev.Vyacheslav    46    

Тонкости эксплуатации, плюшки и особенности Postgres Pro Enterprise

HighLoad оптимизация v8 1cv8.cf Россия Бесплатно (free)

В ходе онлайн-встречи INFOSTART MEETUP Novosibirsk Руководитель ИТ из компании ИнфоСофт Антон Дорошкевич поделился с коллегами тонкостями и опытом работы с Postgresql для 1С. 

22.04.2021    4720    a.doroshkevich    5    

Решение нестандартных проблем производительности на реальных примерах

HighLoad оптимизация v8 Бесплатно (free)

На екатеринбургском Infostart Meetup выступил с докладом архитектор ИС центра разработки ФТО Александр Криулин. Он поделился с коллегами кейсами нестандартных проблем производительности и рассказал о способах их решения.

24.03.2021    6248    AlexKriulin    37    

Анализ производительности: Трассировка + Логи системного монитора

HighLoad оптимизация Бесплатно (free)

Небольшая заметка о том, как можно анализировать производительность при помощи собранной трассировки и показателей логов системного монитора.

16.03.2021    1553    AlekseyBelyy    10    

Параллельные вычисления в 1С 8 Промо

HighLoad оптимизация v8 1cv8.cf Бесплатно (free)

Решение позволяет ускорять выполнение запросов в 1С 8 в отчетах путем их параллельного выполнения в разных потоках.

11.02.2013    38619    gallam99    19    

Соединение вложенными циклами

HighLoad оптимизация v8 Бесплатно (free)

Nested loops и отсутствующие индексы. Статья написана по мотивам вебинара Виктора Богачева.

12.03.2021    4173    vasilev2015    22    

Негативное влияние большого количества ролей на производительность 1С

HighLoad оптимизация Роли и права 8.3.14 ERP2 Россия Бесплатно (free)

Столкнулись с интересной проблемой во время работ с базой ERP. Первоначально проблема была в том, что один дописанный функционал работал слишком медленно и требовалось понять почему , однако вскоре выяснилась любопытная деталь – скорость выполнения операции под разными пользователями отличалась.

10.03.2021    5467    aviconsult    25    

"Крест ИТ", или как жить, если у вас в ИТ ландшафте выросло Кудрово/Мурино/Девяткино

HighLoad оптимизация Бесплатно (free)

Добавлять новую функциональность в ИТ-ландшафт, базирующийся на тяжелых «монолитах», с каждым годом становится все сложнее. О способах преодоления проблем больших и сложных приложений на INFOSTART MEETUP Saint Petersburg.Online рассказал архитектор компании BIA Technologies Марат Шайхутдинов.

09.03.2021    1214    MSChe    3    

Ubuntu vs CentOS vs Win2k8 vs Debian: производительность PostgreSQL Промо

Статистика базы данных HighLoad оптимизация v8 Бесплатно (free)

Хотя интернет уже переполнен статьями о "правильной" настройке связки PostgreSQL и 1C 8.2, для подводных камней всегда остается место. При сравнении производительности СУБД PostgreSQL на разных ОС, показатели различаются в разы. Самую большую обиду принесла любимая Ubuntu (человечность). После долгих дней и ночей проведенных за консолью этой ОС, она разочаровала окончательно. Тормоза PostgreSQL в Ubuntu Server. Что с ними делать? Сколько раз можно наступать на грабли?

03.11.2012    45774    madmpro    32    

Анализ блокировок СУБД: таблица изменений плана обмена 1С

HighLoad оптимизация v8 Бесплатно (free)

Практический пример анализа типичной проблемы ожидания на блокировках СУБД, возникающих при использовании планов обмена 1С. Сервер СУБД: Microsoft SQL Server.

18.12.2020    4426    zhichkin    7    

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

HighLoad оптимизация Бесплатно (free)

Небольшая история о проблемах производительности из-за нехватки процессорных мощностей. А также описание основных показателей работы CPU.

26.11.2020    8622    YPermitin    21    

Анализ проблем производительности по динамике мониторинга RAS 1C

HighLoad оптимизация v8 1cv8.cf Бесплатно (free)

В статье приведем список наиболее чувствительных параметров к изменением производительности системы, также расскажем и покажем, как они изменяются, на что влияют, и дадим советы, что делать.

07.10.2020    6053    ivanov660    13    

Ускорение медленной работы строк в 1С на примере 1С:Документооборот КОРП

HighLoad оптимизация v8 ДО Бесплатно (free)

Если у вас в 1С:Документооборот КОРП 2.1.11.5 (часть более старых и новых конфигураций): 1) Долго отправляется почта в формате HTML; 2) Медленно открывается документы внутренние / входящие / исходящие; 3) Тормозит область просмотра или открытие задач. Тогда вам сюда.

02.10.2020    6086    Iaskeliainen    16