Selis Sergey

308
Рейтинг

1CUnlimited



  •   Регистрация: 15.05.2014 (9 лет назад)

  •   Был(а) на сайте: 25.04.2024

Друзья
  • Станислав Малютин
  • Дмитрий Малышев
  • Александр Шумаков
  • Александр Чугунов
  • Вячеслав Неверов
Подписчики 50

Группы

Профессиональный разработчик

Рейтинг 308

Инструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация

Статья Системный администратор Программист Платформа 1С v8.3 Windows Бесплатно (free) Нет файла Администрирование СУБД

В Postgres достаточно подробная документация, и, видимо, поэтому при инсталляции Postgres для 1С большинство параметров приходится выставлять самим. Параметров в Postgres много, а составить эффективную комбинацию не так просто. Все упрощается, если рассмотреть профиль нагрузки, например, 1С это прежде всего профиль OLTP нагрузки – так устроены его метаданные (объекты). Если сосредоточиться на оптимизации профиля OLTP, понимание Postgres сразу упростится.

15.02.2024    2638    1CUnlimited    14       

28

Реструктуризация - бесконечная история

Статья Программист Платформа 1С v8.3 Бесплатно (free) Нет файла Рефакторинг и качество кода

При разработке программ требуемый функционал ставят на первое место, но есть еще и архитектура программы. На горизонте 5-10 лет она становится важнее функционала, который должен работать при масштабировании и росте данных. Реструктуризация 5 терабайтной базы 1С 8.2 в формат 1С 8.3, складывает весь пазл архитектурных просчетов, которые сделали ради функционала. Как это исправить? - для разработки правильной архитектуры, нужно всего лишь сместить фокус с функционала и подумать о «вечном».

29.09.2023    2130    1CUnlimited    15       

23

Осторожно: новый релиз

Статья Программист Платформа 1С v8.3 Бесплатно (free) Нет файла Обновление 1С

В каждой программе есть ошибка? А если интуиция подсказывает, что все это из одного источника? Тогда это закономерность. Где и как подстелить соломку в августе 2023.

21.08.2023    6715    1CUnlimited    24       

15

Как эффективно настроить autovacuum в Postgres для 1С

Статья Системный администратор Программист Платформа 1С v8.3 Бесплатно (free) Нет файла HighLoad оптимизация Администрирование СУБД

Кто не любит убирать мусор? Думаю, практически все, а вот в Postgres это обязательный ритуал для эффективной работы. Как эффективно настроить уборку за 1С в Postgres, можно прочитать в этой статье и еще раз задуматься о бесплатности Postgres.

05.08.2023    5264    1CUnlimited    5       

51

Postgres как предчувствие. Вычисляем процент импортозамещения в режиме Highload от 1С

Статья Системный администратор Программист Руководитель проекта Платформа 1С v8.3 PostgreSQL Бесплатно (free) Архив с данными HighLoad оптимизация Механизмы платформы 1С

1С работает с СУБД Postgres более 10 лет, а сейчас это единственный легальный вариант для инсталляций в России. Много ли мы потеряем в производительности по сравнению с MS SQL? Выдержит ли Postgres 15.2 жесткий Highload со стороны 1С? Цель этой статьи - ответить на данные вопросы, с цифрами, которые можно использовать при расчете архитектуры.

23.03.2023    3129    14    1CUnlimited    9       

36

Независимая разработка совместимых компонент на ORM 1С – миф или истина где-то в аннотациях Java?

Статья Программист Платформа 1С v8.3 Бесплатно (free) Нет файла Языки и среды

При работе с 1С ORM (object relation mapping) все время преследует ощущение постоянного создания монолитного приложения — один раз привязался к какой либо сущности (например, справочник Контрагенты), и весь код заполнен ссылками на эту конкретную реализацию. Можно ли независимо разрабатывать в ORM совместимые между собой справочник «Контрагентов» и использующий его документ «Платежное поручение», но при этом избежать жестких зависимостей? Спасут ли нас микросервисы? Пример на аннотациях Java демонстрирует, как это возможно делать.

13.03.2023    1079    1CUnlimited    0       

2

Delayed durability поможет вашему ORM увеличить производительность на 50% и более, если Вы только будете использовать …

Статья Системный администратор Программист Платформа 1С v8.3 Бесплатно (free) Нет файла HighLoad оптимизация

ORM (Relational Mapping) используется во многих языках программирования, в том числе и в 1С. Однако реализация высоконагруженных решений, приводит к мысли, что разработчики ORM не учитывали ее влияния на производительность СУБД. Такая ситуация и в 1С, и ORM на Java, и наверняка в других ORM. В предыдущих частях показана глубина проблемы. В этой части предложено решение со стороны СУБД (MS SQL, Oracle, Postgres).

13.02.2023    1330    1CUnlimited    0       

12

Концепция ORM как двигатель прогресса – выявит слабое место Вашей СУБД

Статья Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free) Внешняя обработка (ert,epf) HighLoad оптимизация

ORM (Object Relational Mapping) используется во многих языках программирования, в том числе и в 1С. Однако реализация высоконагруженных решений приводит к мысли, что разработчики ORM не учитывали ее влияния на производительность СУБД. Такая ситуация и в 1С и ORM на Java, и наверняка в других ORM. В предыдущей части статьи были изложены результаты теста, в этой статье ответы на самые часто задаваемые вопросы и новый тест.

01.02.2023    1318    8    1CUnlimited    7       

2

Концепция ORM как двигатель прогресса - выдержит ли ее ваша СУБД?

Статья Системный администратор Программист Платформа 1С v8.3 Бесплатно (free) Нет файла HighLoad оптимизация

ORM (Object-Relational Mapping) используется во многих языках программирования, в том числе и в 1С. Однако реализация высоконагруженных решений приводит к мысли что разработчики ORM не учитывали ее влияния на производительность СУБД. Такая ситуация и в 1С, и ORM на Java, и наверняка в других ORM. Причины приоткрывает данная статья.

16.12.2022    2166    1CUnlimited    11       

10

Селективный индекс от 1С - что выберет MS SQL?

Статья Системный администратор Программист Платформа 1С v8.3 Абонемент ($m) Архив с данными HighLoad оптимизация Разработка

Большие объемы данных вынуждают глубже смотреть в логику работы оптимизатора СУБД. Ваше понимание о селективном индексе может расходится с логикой оптимизатора SQL. Это еще больше привязывает конкретную систему к конкретной СУБД. Построение хорошего запроса к СУБД попрежнему остается искусством, а искусственный интеллект пока еще туда не добрался

18.10.2022    1965    1CUnlimited    9       

4

Комментарии

ПубликацииИнструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация#14 21.02.24 14:08
(13)
Цитата
Поставьте постгреспро с настройками из коробки и попробуйте своим тюнингом выйграть у него хотя бы 15-20%
Вы неправильно проблему поняли. Без этого тюнинга , база просто деградирует по производительности я бы сказал в разы и чем больше база тем хуже.

В отличии от того же MS SQL где достаточно одним флагом обойтись T2371 для более частого обновления статистики, и сосредоточится на других вопросах.

Попробуйте
а) Просто подвигайте итоги взад вперед при настройках вакуума по умолчанию . (пример тут https://infostart.ru/1c/articles/1912525/ очень частый кейс по закрытию месяца )
б) Или без synchronous commit=off перепроведение с 20 параллельных процессов.

Это сэкономит время на последующие поиски объяснений - почему один и то же запрос случайным образом показывает разную производительность

Цитата
Последние лет 20 мелкомягкие занимаются только тем что перепрятывают кнопку Пуск, а могли бы сделать новую производительную файловую систему например
Итог - рынок смартфонов, рынок планшетов, рынок браузеров начисто проигран, рынок веб серверов нет смысла говорить, рынок СУБД сейчас уже 50/50, остается пролопатить рынок десктопов
Вы невнимательно за потенциальным противником следите. Они во первых уже основные доходы получают от облака и его экосистемы технологий
https://www.finam.ru/publications/item/microsoft-otchitalas-o-rekordnykh-pokazatelyakh-za-1-kvartal-20231025-1240/
более 50%
во вторых даже наглая функция принудительных обновлений , это часть стратегии загона всех в цифровую тюрьму или Windows as service
https://learn.microsoft.com/en-us/windows/deployment/update/waas-overview
понятно большинство свободных граждан на западе сделает правильный однозначный выбор. А бизнес они пока боятся вести в загон, поскольку у него больше возможностей
ПубликацииИнструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация#12 20.02.24 23:16
(11) Реальность в холиваре windows vs linux бывает субьективной и объективной. Объективная подтверждается синтетическими тестами - ну не вижу я на своих синтетических тестов существенной разницы для Postgres.
В общем то я ответил там https://habr.com/ru/articles/776536/comments/#comment_26201940 но диалог развития не получил.
Сделайте свой синтетический тест покажите что Postgres over windows это плохо. Так сказать добейте его , всеравно windows под импортозамещение пойдет в сторону Linux по крайней мере на серверной части на ближайший солнечный цикл.

P S Я если честно после плясок с отключением обновлений вокруг нового ноута с Win11 готов импортозаместится на стабильную сборку Linux лишь оно принудительно не обновлялось. Удерживает только уровень офисного софта под Linux,формально он вроде повторяет функции но по факту Linux way
ПубликацииИнструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация#9 16.02.24 12:23
(8) Контрольные суммы выключены по умолчанию. Да и я пока не проверял сколько они отнимают по производительности для Highload. Postgres и так съедает больше ресурсов CPU по сравнению с MS SQL. Хотя конечно, для контроля целостности базы они нужны поскольку у Postgres с этим не очень.
ПубликацииИнструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация#6 15.02.24 16:11
(5) Все правильно делаете, Когда сели в машину и начали ехать можно не обращать внимание на тормоза, когда понадобится разберетесь если что ;) .
ПубликацииИнструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация#3 15.02.24 12:08
(2) Мой опыт это не подтверждает. Я гонял тест Нагрузочный тест Postgresна сравнимом оборудовании windows vs unix
Принципиальной разницы не заметил. Каких то особых проблем по сравнению с linux (oracle linux 8) так же не нашел. Да и откуда им появится когда структура процессов в Postgres одинакова как на linux так и на windows.
А Windows еще долго пользоваться поскольку что либо на Windows развернуть проще из-за пресловутого Linux way Что такое linux way . Linux спроектирован для админа у которого много времени, а не для разработчика 1С которому нужно быстро поднять инфраструктуру для работы у клиента
ПубликацииИнструкция по установке Postgres для OLTP приложений и 1С. Часть 1. Базовая конфигурация#0 13.02.24 19:26
В Postgres достаточно подробная документация, и, видимо, поэтому при инсталляции Postgres для 1С большинство параметров приходится выставлять самим. Параметров в Postgres много, а составить эффективную комбинацию не так просто. Все упрощается, если рассмотреть профиль нагрузки, например, 1С это прежде всего профиль OLTP нагрузки – так устроены его метаданные (объекты). Если сосредоточиться на оптимизации профиля OLTP, понимание Postgres сразу упростится.
HighLoadПартицированная дисциплина программиста в 1С#4 14.11.23 17:38
(3)
Цитата
Оптимизатор оценивает "стоимость" запроса, как вы правильно сказали в "попугаях".

Одной из самых важных величин (главным попугаем) влияющих на стоимость является число строк. Начиная с определенного кол-ва строк, становится более выгодным использовать Nested Loops (NL) вместо Merge Join (MJ).
Вы специально убрали при цитировании "Видимо все соединение можно сделать в памяти" т.е. это было предположение а не утверждение, поскольку открытый код оптимизатора MS SQL никто из нас не смотрел.
По поводу расчета стоимости оптимизатором неясно окуда уверенность что MS SQL ее считает верно, тем более что есть Estimated и Fact cost. A nested loop на более чем 100 тыс записей так себе алгоритм,который сядет на одно ядро тем более что параллелизм по рекомендациям 1С выключен
Тут скорее не выводы а констатация факта
HighLoadКонцепция ORM как двигатель прогресса - выдержит ли ее ваша СУБД?#9 12.10.23 13:34
(8)
Цитата
Проблема большинства ORM не в записи, а в чтении данных. 1С решила отдельной машинерией механизмов запросов, построителя отчетов, СКД.
Ты как то вбросил этот тезис, из которого следует что в "большинстве " Orm у тебя проблема в чтении данных. У каждого свои проблемы понимаю.
И альтернативу SQL ты предлагаешь
Цитата
1С альтернативой языку SQL является СКД, позволяющая, написав простой запрос к регистру накопления, составлять множество выборок (отчетов) с различными группировками, с различной детализацией с помощью лоукод подхода, изменяя настройки.
Только тебя не смущает? что эта выборка по которой ты дальше будешь делать множество группировок и детализаций поедет на серверную (а в некоторых случаях на клиентскую) часть полностью? Если нужно поворочать с гибкими группировками больше миллиона строк?
а) Запрос к серверу - вернет эти миллионы,а кластер 1С это сохранит в каталоге сеанса полностью
б) Дальше СКД будет обрабатывать это с кластера 1С - который не имеет средств какие есть у СУБД
в) Еще есть вывод на клиент, если вдруг програмист решит свои функции использовать в СКД

Выход - делать в СКД основной запрос уже с группировками , которые исполнятся на уровне СУБД. А уже на СКД уже работать с сгруппированными данными .
Но это не выклядит альтернативой SQL, потому что на нем же базируется
HighLoadКонцепция ORM как двигатель прогресса - выдержит ли ее ваша СУБД?#7 11.10.23 19:50
(6)
Цитата
люс машинерией хранения аккумулированных данных в регистрах накопления и регистрах двойной записи. И это главные килерфичи 1С.
Это трудно считать Киллерфичами, просто потому что реализация регистров с итогами (даже если их сдвигать назад и не использовать текущие) сильно отягощает запись. Попробуете с 50 потоков поделать запись
Альтернатива - регистры с агрегатами
Агрегаты в 8.3 настолько усложнили, что на нашей базе , даже дождаться конца пересчета невозможно (в 8.2 это работало)

Цитата
Например ORM Active Record в Ruby предоставляет только аналогичный 1С объектный подход, или прямые запросы к СУБД
Orm Active Record наверняка оперирует объектами - соответствующими отдельным таблицам или View, почему от него ожидают каких то продвинутых абстракций скрытия, разыменований? Поэтому для чтения все кончается прямыми запросами к субд обернутыми в ORM (в Java например так) . Ну это конструктор "сделай сам". Но хотябы есть нормальные средства работы со чтением пусть и прямым запросом (SQL нормальный декларативный язык).
Тогда откуда проблема со чтением в большинстве Orm? Вообще то с чтением ее нет.
Но если хотите все обернуть в объекты
Ищите альтернативы sql https://stackoverflow.com/questions/2497227/what-are-good-alternatives-to-sql-the-language
?
Некоторые уже нашли https://en.wikipedia.org/wiki/Object_Query_Language
ПубликацииРеструктуризация - бесконечная история#15 04.10.23 10:48
(14) Аренда имеет смысл только ради двойного дискового пространства, которое неизбежно потребуется из на особенностей реструктуризации (копии таблиц даже в оптимизированном режиме, переброс данных из Ваших tablespace в Primary )