Новый режим реструктуризации (обновление базы данных на сервере в режиме v2)

Публикация № 934237

Администрирование - Производительность и оптимизация (HighLoad)

реструктуризация обновление баз данных

Данная статья скорее является заметкой и отчетом об успешном использовании нового механизма реструктуризации баз данных 1С. Актуально для больших баз данных.

Дано:

Произвольная таблица (регистр, документ, справочник) в произвольной базе данных 1С, 100 млн строк, 60 Гб места на жестких дисках.

Требуется:

1. Добавить 1 произвольный реквизит (измерение).

2. Добавить индекс по уже существующему реквизиту (измерению).

3. Удалить 1 или несколько существующих реквизитов (измерений).

 

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

- создание копии исходной таблицы с новой структурой колонок;

- select из старой таблицы insert в новую;

- переименование новой таблицы, truncate старой таблицы.

И все это в транзакции.

Понятно, что для таких действий со 100 млн строк потребуется безумно много времени и весьма немало места.

 

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

Как он отработает?

1. Для любой таблицы будет выполнена инструкция alter table. Выполняется мгновенно. Без копирования строк из старой таблицы в новую. Будет добавлена колонка в таблицу БД с указанным Вами типом. Если тип, к примеру, ссылочный - значение колонки во всех строках будет вида "ПустаяСсылка" (16-ричное число 0x00000000000000000000000000000000).

2. Для добавления индекса сразу будет запущена инструкция create index. Без копирования строк из старой таблицы в новую. Если индексов несколько - команды create выполняются параллельно. На таблице 100 млн строк индексы по 3 реквизитам добавились за 30 минут (реальный живой тест не на самом мощном ПК с обычным жестким диском, не SSD).

3. В случае с реквизитом будет также выполнена инструкция alter. А вот в случае с удалением измерения из регистра накопления (например) - все несколько сложнее. Платформе придется выполнить "свертку" (group by) по новому составу измерений и записать новые данные в новую таблицу. Также это вызовет и перезапись таблицы итогов. 

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

Проведенные тесты:

1. Таблица табличной части документа, 80 млн строк, добавлены индексы по 3-м реквизитам ТЧ. Отработало за 35 минут.

2. Таблица периодического регистра сведений (ЦеныНоменклатуры), у 3-х измерений установлено свойство "ведущее". 100 млн. строк. Индексы построились за 1 час 20 минут.

При всех операциях лог-файл "распухал" вполне прогнозируемо относительно исходного размера таблицы в мегабайтах.

 

Как запустить обновление в новом режиме?

1. На сервере 1С обязательно должен быть установлен runtime Java 8. Разрядность Java обязательно должна совпадать с разрядностью сервер 1С. Для 32 бит качаем 32 бит, для 64 - 64. Скачать можно здесь: https://java.com/ru/download/

2. На сервере БД 1С, для службы агента sql обязательно должны быть разрешены подключения по TCP/IP (настраивается в диспетчере конфигурации SQL). Драйвер JDBC использует подключение tcp/ip для выполнения запросов t-sql.

3.1 Пакетный запуск

Текст скрипта для PowerShell (файлы .ps1)

Start-Sleep -Seconds 3
Get-WMIObject Win32_Process|where{$_.name -eq '1cv8.exe' -and $_.getowner().user -eq $env:UserName}|%{stop-process $_.ProcessId}Start-Sleep -Seconds 1
Start-Process -FilePath "C:\Program Files (x86)\1cv8\8.3.12.1529\bin\1cv8.exe" -ArgumentList " CONFIG /S localhost\bd_test /N UpdateRobot /P 123456 /UC 123456789 /UpdateDBCfg -Server -v2 "

В БД 1С должен быть создан пользователь UpdateRobot, с одной единственной ролью, с одним единственным правом доступа "Обновление конфигурации базы данных". Все остальные права доступа (администрирование, администрирование данных) - не нужны.

В таком режиме ход обновления можно отслеживать только через консоль администрирования кластера 1С и с помощью инструментов сервера БД (MS SQL Studio).

3.2 Настройка файла conf

Смотрим, что написано в файле conf

C:\Program Files (x86)\1cv8\8.3.12.1529\bin\conf

Ка правило, путь в нем указан так: ConfLocation=C:\Program Files (x86)\1cv8\conf

Правим указанный файл так, чтобы он содержал строку: UpdateDBCfg=v2

Пример:

SystemLanguage=System
UpdateDBCfg=v2

Далее, чтобы обновиться в режиме v2:

Конфигуратор - конфигурация БД - обновить конфигурацию БД на сервере.

 

Тесты проводились: платформа 8.3.12.1529 (клиент-сервер, 32 бит), сервер БД MS SQL 2012.

Буквально недавно в нашей организации таким образом было успешно обновлено 14 баз данных 1С размером от 500 Гб до 1 Тб.

ВАЖНО (выдержка с ИТС):

"2-я версия механизма реструктуризации работает только для клиент-серверного варианта работы информационной базы в том случае, если в качестве СУБД используется Microsoft SQL Server или PostgreSQL. Если планируется использование 2-й версии механизма реструктуризации совместно с СУБД Microsoft SQL Server, то сервер «1С:Предприятия» для соединения с СУБД должен использовать сетевой протокол TCP/IP (в терминах СУБД). Работа 2-й версии механизма реструктуризации не поддерживается в том случае, если сервер «1С:Предприятия» подключается к СУБД Microsoft SQL Server с использованием сетевых протоколов Разделяемая память или Именованные каналы."

https://its.1c.ru/db/v8311doc#bookmark:adm:TI000000376

UPD 14.06.2019

ВАЖНО: Если обновление по v2 падает с ошибкой - одна из причин может быть в том, что в вашей БД есть индексы, отличные от стандартных платформенных (добавленные вручную) - их необходимо физически удалить (именно удалить, а не отключить) перед запуском обновления.

UPD 10.09.2019

Если обновление v2 падает с ошибкой вида:

При работе механизма реструктуризации второй версии возникла ошибка. Код возврата: 1. Операция: prepare.

одна из возможных причин может быть следующей:

- вы добавили реквизит в документ/справочник/регистр и после добавления отсортировали список реквизитов по имени/синониму;

В этом случае java падает в зацикливание. Решение: сначала просто добавить реквизит, выполнить реструктуризацию по v2, затем уже отсортировать реквизиты и выполнить обновление по v1.

 

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. nyam-nyam 31.10.18 17:22 Сейчас в теме
Ещё по теме для тех кто тюнингует 1С+MS SQL: https://its.1c.ru/db/metod8dev/content/5945/hdoc.
Kinestetik; Дмитрий74Чел; Dach; Repich; +4 Ответить
2. Dach 295 31.10.18 17:48 Сейчас в теме
(1) да, весьма в тему, спасибо!
39. nytlenc 24.06.19 11:51 Сейчас в теме
(2) и еще в догонку по теме "для тех кто тюнингует 1С+MS SQL" http://v8.1c.ru/predpriyatie/questions_licence.htm#lrvs1cpp

это к последнему апдейту
ВАЖНО: Если обновление по v2 падает с ошибкой - одна из причин может быть в том, что в вашей БД есть индексы, отличные от стандартных платформенных (добавленные вручную) - их необходимо физически удалить (именно удалить, а не отключить) перед запуском обновления.
47. Andreynikus 1332 16.12.19 14:18 Сейчас в теме
(1) Ирония в том, что в старом механизме реструктуризации указание MAXDOP=0 используется по умолчанию, она добавлена в качестве опции в запросе на создание индекса.
А вот в новом механизме, который описан в данной статье, разработчики почему-то забыли эту опцию включить в запрос и если в настройках сервера MAXDOP равен 1, то реструктуризация будет медленнее чем хотелось бы . Возможно следует в статье 4-м пунктом добавить, что включение на сервере MAXDOP=0 на время реструктуризации, дополнительно ускорит этот процесс.
a.doroshkevich; +1 Ответить
3. user612295_death4321 31.10.18 19:53 Сейчас в теме
Буду тестировать скоро отключение режима совместимости 8.2))) БД почти 3 ТБ.
4. vcv 87 31.10.18 20:02 Сейчас в теме
Двойственные чувства.
С одной стороны слава тебе Господи, наконец-то 1С сподобилась взяться за то, что куча народа ждало еще со времён 7.7. С другой стороны тут и Java, тут и Powershell… А сплясать в водолазном костюме в гамаке не надо?
TeMochkiN; user774630; Glebis; Kinestetik; VitusBering; Antonov.AV; blackjack666; CodeNull; Brawler; Krio2; insurgut; manlak; memb3r; babys; sm.artem; Silenser; monkbest; Yakud3a; alest; Gang031; o.nikolaev; Ta_Da; djam_arttek; comol; Boulala; roman77; ilialin; zqzq; user747571; frkbvfnjh; LavinVadik; DrAku1a; slawanix; +33 Ответить
5. slawanix 13 31.10.18 23:08 Сейчас в теме
(4) аналогичные чувства... только обрадоваться хотел, но остался вопрос, почему нельзя сделать это всё прямо из платформы, по кнопке «сделать всё хорошо»?
TeMochkiN; Brawler; memb3r; Serg3141; djam_arttek; +5 Ответить
6. Vladimir Litvinenko 31.10.18 23:36 Сейчас в теме
(4) Java - это отголоски наработок по платформе 1C 8.4. Развитие этой версии идет медленно и новостей давно не слышно, но ее наработки постепенно появляются в 8.3. На Java никто писать не заставляет, а представить машину без JRE сейчас сложно. И судя по всему с Java придется дружить всё больше - EDT, сервер взаимодействия и т.д.

Powershell для примера же приведен. Там кроме команды запуска 1С с параметрами "UpdateDBCfg -Server -v2" и нет ничего, одна консольная команда. Не внешнюю же обработку для выполнения одной консольной команды писать...
9. DrAku1a 1314 01.11.18 02:19 Сейчас в теме
(6)
Там кроме команды запуска 1С с параметрами "UpdateDBCfg -Server -v2" и нет ничего

CMD не подойдёт?
21. comol 4321 01.11.18 13:19 Сейчас в теме
(6)
а представить машину без JRE сейчас сложно
представить машину с JRE при нормальном админе сейчас сложно. Я про Win конечно...

Просто Java программистов "как грязи" и 1С решили подбирать весь мусор и писать на том подо что есть программисты. На Java не пишут системное ПО нормальные люди конечно, просто C++ ника нормального попробуй найди
Brawler; Synoecium; Evg-Lylyk; monkbest; +4 5 Ответить
31. philya 83 07.11.18 08:13 Сейчас в теме
(21) я на java драйвера для фискальных регистраторов пишу, очень удобно, т.к. один код работает под виндой, линуксом и андроидом. Что я делаю не так? С++ я тоже умею.
manuel; Boulala; memb3r; LordKim; milov.aleksey; pfilyk; +6 Ответить
32. 7OH 32 07.11.18 11:06 Сейчас в теме
(31) драйвера или обёртки для готовых dll\so ?
33. philya 83 07.11.18 20:51 Сейчас в теме
(32) библиотеки работы с com/usb готовые, драйвера мои что-то типа....

@Override
public ByteBuffer getCommand() {
ByteBuffer data = ByteBuffer.allocate(12 + cashier.length() + cashierFiscalId.length());
data.order(ByteOrder.LITTLE_ENDIAN);
data.putShort((short) 2); // отчет об открытии смены
data.putShort((short) (4 + cashier.length() + 4 + cashierFiscalId.length()));
data.putShort((short) 1021);
data.putShort((short) cashier.length());
data.put(cashier.getBytes(Charset.forName("IBM866")));
data.putShort((short) 1203);
data.putShort((short) cashierFiscalId.length());
data.put(cashierFiscalId.getBytes(Charset.forName("IBM866")));

setData(data);
return super.getCommand();
}
38. Evil Beaver 6746 24.06.19 10:26 Сейчас в теме
(21) Ну при всей моей нелюбви к Джаве, я бы все-таки не стал называть ее мусором :) Тот же Apache Kafka на ней написан и шустр до безобразия.
41. Antonov.AV 12.07.19 06:34 Сейчас в теме
(4) я думал только у меня такое ощущение)
7. palsergeich 01.11.18 00:08 Сейчас в теме
Я один раз пробовал.
Мне вывело сообщение ошибка и на какой то внутренний модуль.
Гугл сказал что ничего не светит. я сказал ок и по старому за 6 часов обновился.
Обидно конечно.
28. Repich 501 01.11.18 13:49 Сейчас в теме
(7)
Вот такое у меня сейчас. Ковыряемся. Ради спортивного интереса хочу докопаться до причин.

В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Критическая ошибка работы Java-процесса.
Путь к Java: C:\Program Files\Java\jre1.8.0_181\bin\java.exe
Действие: prepare
Process ID: 22296
Код возврата: 1
Ошибка: Exception in thread "main" java.lang.IllegalStateException: Duplicate key ae4a0c5e-f97b-4cf4-96d8-c040bf8e222b
at java.util.stream.Collectors.lambda$throwingMerger$0(Unknown Source)
at java.util.HashMap.merge(Unknown Source)
at java.util.stream.Collectors.lambda$toMap$58(Unknown Source)
at java.util.stream.ReduceOps$3ReducingSink.accept(Unknown Source)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.collect(Unknown Source)
at com._1c.dmf.v8.converters.parameters.documentjournal.GraphContent.<init>(GraphContent.java:24)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeGraphContent(ConfigurationModelParser.java:352)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeValue(ConfigurationModelParser.java:208)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeParameter(ConfigurationModelParser.java:172)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeAttributeParameter(ConfigurationModelParser.java:155)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeEntityParameters(ConfigurationModelParser.java:139)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.deserializeParameters(ConfigurationModelParser.java:112)
at com._1c.dmf.v8.cli.modelparsing.ConfigurationModelParser.parse(ConfigurationModelParser.java:92)
at com._1c.dmf.v8.internal.integration.Arguments.getOldModel(Arguments.java:84)
at com._1c.dmf.v8.internal.integration.DmfService.prepareMigration(DmfService.java:64)
at com._1c.dmf.v8.cli.Migration.run(Migration.java:90)
at com._1c.dmf.v8.cli.Migration.main(Migration.java:65)
29. palsergeich 01.11.18 17:05 Сейчас в теме
(28)
at java.util.HashMap.merge(Unknown Source)

Да что то очень похожее.
Причем все базы кроме нужной реструктурировались новым методом нормально.
Но там было не к спеху, и я просто сделал по старинке.
Изменений очень много было, может в этом была проблема?
30. Dach 295 01.11.18 19:43 Сейчас в теме
(28) поставь Яву не 181, а 171 или младше
8. silberRus 67 01.11.18 01:00 Сейчас в теме
Интересно что за данные в базе на 1тб.
10. buganov 150 01.11.18 05:09 Сейчас в теме
(8)скорее всего продажи, чеки, заказы на перемещение / перемещения на магазины.
У нас база 3 Тб
11. dsdred 1423 01.11.18 08:11 Сейчас в теме
(8)Размер базы обычной небольшой торговой сети, может быть еще с небольшим производством...
12. Dach 295 01.11.18 09:25 Сейчас в теме
Можно и cmd. Друзья, конечно это не одна кнопка "сделать всё хорошо", но уже существенный задел. База - склад, продажи, логистика. Плюс у нас ещё и РИБ. Механизм обновления активно используем, все работает... На ИТС информации мало, поэтому посчитал нужным поделиться опытом и отчитаться об успехе) в дальнейшем неплохо было бы иметь возможность обновляться пакетно с возможностью логгировать ход обновления
djam_arttek; +1 Ответить
13. Fox-trot 113 01.11.18 09:31 Сейчас в теме
(12)пока логирование обновления можно наблюдать на стороне базы данных
14. Xershi 977 01.11.18 11:07 Сейчас в теме
У конфигурации режим совместимости был 8.3.11? Или ниже?
15. Dach 295 01.11.18 11:31 Сейчас в теме
(14) режим совместимости был выключен. Но думаю, в режиме совместимости 8.3.11 должно отработать
16. Xershi 977 01.11.18 11:54 Сейчас в теме
(15) значит как и завялено при режиме совместимости 8.3.10 все будет по старому!
17. comol 4321 01.11.18 13:06 Сейчас в теме
О даааа!!!!! Это случилось! В 1С выучили Alter Table!
18. comol 4321 01.11.18 13:08 Сейчас в теме
Малину портит только " На сервере 1С обязательно должен быть установлен runtime Java 8". Вопрос "зачем так" наверное риторический...
19. Dach 295 01.11.18 13:11 Сейчас в теме
(18) весь "интеллект" умных скриптов T-SQL написан на Java, в недрах платформы, насколько я понял ))
20. acanta 01.11.18 13:15 Сейчас в теме
(19) т.е. можно в принципе написать левый скрипт на Java, который реструктуризует базу под новую конфигурацию и зальет туда измененный cf с гитхаба или с какого нибудь каталога?
И все будет работать?
23. comol 4321 01.11.18 13:21 Сейчас в теме
(20) можно декомпильнуть то что написано, подправить и юзать как хочется теперь :)
25. acanta 01.11.18 13:25 Сейчас в теме
(23) на каждое добавление булева не надекомпилируешься. Но сама идея о неразрывном совмещении данных в базе и их интерфейса достаточно спорная.
При том, что на все итоги и индексы, целостность которых якобы гарантирует платформа, существуют процедуры SQL, выполняющие пересчеты.
22. comol 4321 01.11.18 13:20 Сейчас в теме
(19) в недрах платформы Java нет, иначе мы бы это уже "почувствовали".
Пока надеюсь что и не будет.
26. Dach 295 01.11.18 13:28 Сейчас в теме
(22) ну как-то же она тексты скриптов собирает, в зависимости от выполненных действий в конфигураторе
27. acanta 01.11.18 13:36 Сейчас в теме
(26) мы бы тоже хотели знать как и почему alter возник только сейчас. Исторически сложилось, что реструктуризация выполнялась таким образом в DBF. Сначала все измененные файлы складывались в папку NewStru, затем копировались вместо находящихся в базе. Почти цитирую старый мануал: при возникновении сбоя на первом этапе файлы в базе будут первоначальных вариантов и никакие данные не будут утеряны.
При возникновении сбоя на втором этапе часть данных в базе может стать некорректной, но всегда есть возможность скопировать файлы из NewStru и завершить процесс реструктуризации вручную. Исходили из положения что бакап и изменение структуры в процессе работы с DBF по-горячему сделать невозможно, а программист, обслуживающий конфигурацию не полезет в dbf и работу платформы, но точно знает основы работы с файлами в файловом менеджере.

В SQL есть возможность добавить колонку в таблицу в процессе работы. Немонопольно. Это не проблема для SQL, это проблема конфигуратора, который не умеет работать одновременно с разными версиями данных (до и после) какой то реструктуризации.
Gureev; 7OH; +2 Ответить
34. Andrefan 08.11.18 09:28 Сейчас в теме
(0) Спасибо за интересный материал! Не подскажите, режим совместимости с 8.2.13 возможно заставить работать этот механизм?
35. Dach 295 08.11.18 09:58 Сейчас в теме
(34) к сожалению, нет. Вам придется прибегать к другим методам... О том, как добавлять колонки и индексы в большие таблицы БД - куча статей есть на ИС, в том числе и у меня (не реклама)
36. Kamikadze 46 07.12.18 19:46 Сейчас в теме
Надо добавить, что для клиент - серверного варианта базы нужно перезапустить службу сервера 1С

У меня возникла ошибка

В процессе обновления конфигурации базы данных при работе механизма реструктуризации второй версии произошла критическая ошибка
по причине:
При работе механизма реструктуризации второй версии возникла ошибка. Код возврата: 1. Операция: execute.

Версия платформы 8.3.13.1513
48. Koluma 17.03.20 15:35 Сейчас в теме
(36)
При работе механизма реструктуризации второй версии возникла ошибка. Код возврата: 1. Операция: execute.




ВЫ поняли из-за чего эта ошибка выпала?
49. ITPartner1C 21.05.20 09:27 Сейчас в теме
(48) Получилось разобраться в чем причина?
37. dmarenin 281 09.12.18 18:37 Сейчас в теме
40. 3vs 25.06.19 06:20 Сейчас в теме
А, говорят, Java теперь платная, Oracle денег просит за её использование
не в домашнем применении.
42. kauksi 206 19.07.19 11:17 Сейчас в теме
почти типовая УПП...
В процессе обновления конфигурации базы данных при работе оптимизированного механизма обновления произошла критическая ошибка
по причине:
Критическая ошибка работы Java-процесса.
Путь к Java: C:\Program Files (x86)\Java\jre1.8.0_221\bin\java.exe
Действие: prepare
Process ID: 2660
Код возврата: 1
Ошибка: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
43. kauksi 206 19.07.19 11:44 Сейчас в теме
Эта проблема решилась добавлением опции JavaOpts=-Xmx2048m в conf.cfg, но теперь ошибка без расшифровки
Критическая ошибка работы Java-процесса.
Путь к Java: C:\Program Files (x86)\Java\jre1.8.0_221\bin\java.exe
Действие: prepare
Process ID: 3392
Код возврата: 1
Ошибка:
44. kauksi 206 19.07.19 11:45 Сейчас в теме
повышение режима совместимости УПП до 8.3.1 результатов не дало. Видать сырая еще опция
45. Dach 295 19.07.19 15:16 Сейчас в теме
(44) механизм работает с версии 8.3.11. Совместимость должна быть не ниже этой версии
46. bforce 443 10.08.19 12:37 Сейчас в теме
(45)
Неверно. У меня в режиме совместимости 8.3.6 отрабатывает.
Оставьте свое сообщение

См. также

Исследование технологического журнала 1С при помощи регулярных выражений в блокноте Промо

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

Все из тех, кто пробовали сдать на сертификат "Эксперт по технологическим вопросам 1С", сталкивались с методикой ЦКТП - разбор файлов технологического журнала при помощи консоли bash. Я, в свою очередь,внёс изменения в данную методику. Мне хотелось достичь более понятного вида и сфокусироваться на Perl, в качестве предпочтительного средства обработки файлов ТЖ. Вот что из этого вышло:

30.10.2017    28637    0    MrWonder    42    

Автоматическая классификация ошибок технологического журнала

Технологический журнал v8 1cv8.cf Бесплатно (free)

В статье обсудим пример практической настройки конфигурации «Мониторинг производительности» для автоматической классификации ошибок по группам/кластерам на данных текстов описания ошибок. Используем механизм векторной модели текстов и косинусное сходство между ними.

25.06.2020    1582    0    ivanov660    12    

Выявляем и оптимизируем ресурсоемкие запросы 1С:Предприятия

Производительность и оптимизация (HighLoad) Администрирование СУБД Технологический журнал Структура метаданных v8::Запросы Бесплатно (free)

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

24.05.2020    5776    0    DataReducer    22    

[SQL Server] Использование trace flag 9592 для сжатия траффика в кластере AlwaysOn

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

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

18.05.2020    1555    0    Aleksey.Bochkov    3    

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

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

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

22.04.2015    39931    0    Gilev.Vyacheslav    1    

Эти занимательные временные таблицы

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

Кое-что интересное о временных таблицах и работе платформы 1С с ними.

06.04.2020    9802    0    YPermitin    0    

Оптимизация запросов 1С посредством индексации временных таблиц. Миф? Тестируем, смотрим, считаем

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

Появилось свободное время, решил проверить на работе индексацию таблиц. Решил поделиться с Вами результатами исследования. Давайте порассуждаем на эту тему? Часто ли вы пользуетесь индексацией в запросах? Платформа 8.3.16.1224

03.04.2020    3118    0    feva    14    

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

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    10935    0    informa1555    21    

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

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

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

22.01.2014    66326    0    yuraos    112    

Многострочный контекст событий

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

Разбор технологического журнала с группировкой событий по первой или последней строке многострочного контекста.

31.03.2020    2688    0    vasilev2015    9    

Анализ взаимоблокировок

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

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

20.03.2020    3943    0    vasilev2015    21    

Многопоточность

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

Увеличиваем скорость загрузки данных в 20 раз. Как следует использовать многопоточность и готовый модуль для внедрения.

18.03.2020    5945    0    kaliuzhnyi    43    

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

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

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

21.06.2013    53111    0    Антон Ширяев    116    

Планы запросов - это просто! Разбор оптимизаций запросов PostgreSQL на живых примерах

Производительность и оптимизация (HighLoad) v8::Запросы Бесплатно (free)

Проблема быстродействия 1С напрямую зависит от производительности запросов. Но как понять механику работы СУБД с помощью плана запроса? Андрей Овсянкин и Никита Грызлов на конференции Infostart Event 2019 Inception подробно рассмотрели алгоритм работы с планом запроса СУБД PostgreSQL, полученным из технологического журнала, и рассказали, на что обратить внимание, чтобы оптимизировать работу системы.

17.02.2020    7890    0    Evil Beaver    13    

Оптимизатор запросов. Вторая часть

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

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

23.01.2020    5748    0    darkdan77    59    

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

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

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

19.02.2013    53790    0    Gilev.Vyacheslav    46    

Улучшаем производительность 1С. Рекомендации

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

Каждый уважаемый разработчик 1С сталкивался или столкнется с вопросом производительности высоконагруженных систем. В статье агрегирован основной набор рекомендаций, который позволит повысить производительность системы. Эти рекомендации должны быть просто must have по определению.

23.01.2020    7032    0    Kaval88    26    

Мониторим производительность с помощью 1С RAS

Инструментарий разработчика Производительность и оптимизация (HighLoad) v8 1cv8.cf Бесплатно (free)

Подключаемся и анализируем данные через 1С RAS. Необходимо выполнить 5 пунктов и серьезный инструмент мониторинга будет у вас в руках.

19.12.2019    9734    0    ivanov660    16    

Весёлые картинки о работе Performance Monitor на Windows Server 2016 Std по мотивам расследования потери производительности на базе 1С

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

Данная публикация посвящена одной особенности Performance Monitor на Windows Server 2016 Std. Как понимать графики Performance Monitor на Windows Server 2016 Std при расследовании проблем в работе 1С.

22.10.2019    6823    0    EugeneSemyonov    11    

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

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

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

11.02.2013    29538    0    gallam99    19    

Обслуживание баз данных. Не так просто, как кажется

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 1cv8.cf Бесплатно (free)

Считаете, что обслуживание индексов и статистик дело простое? Что ж, это не всегда так.

14.10.2019    16217    0    YPermitin    28    

Мониторинг высоконагруженной системы

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

Высоконагруженной системе (более 8000 клиентских сессий) мониторинг необходим. Про опыт использования инструментов для мониторинга – самописной системы информирования, написанной на C#, и конфигурации «Центр контроля качества» в связке с системой отображения данных Grafana, на конференции Infostart Event 2018 Education рассказал Олег Репников.

13.09.2019    8389    0    Repich    5    

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux

Администрирование данных 1С Zabbix v8 Бесплатно (free)

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

10.09.2019    17261    0    Sloth    24    

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

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

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

03.11.2012    41741    0    madmpro    32    

Хранение файлов - как уменьшить размер базы данных

Чистка базы Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 Россия Бесплатно (free)

Хранение файлов в базе 1С можно оптимизировать для уменьшения размера хранимых данных.

09.09.2019    7863    0    2tvad    17    

Анализ производительности APDEX

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

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

31.08.2019    9666    2    YPermitin    7    

Неочевидные проблемы производительности: важность системного подхода при анализе

Производительность и оптимизация (HighLoad) v8 Россия Бесплатно (free)

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

19.07.2019    8371    0    Филин    12    

Ловля блокировок на связке "Microsoft SQL server - 1С"

Производительность и оптимизация (HighLoad) v8 v8::blocking Бесплатно (free)

Материал относится к базам данных на связке «1С - MS SQL Server». Один из способов отлова блокировок в бд 1С . Переход к управляемым блокировкам через режим "Автоматический и управляемый".

16.07.2019    8986    0    fhqhelp    0    

Анти-оптимизация: как мы ускорили запрос в 4 раза, сделав его неоптимальным

Производительность и оптимизация (HighLoad) Практика программирования Решение задач на 1С:Специалист Разработка v8 Бесплатно (free)

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

02.07.2019    10481    0    igordynets    119    

Ускорение чтения правил обмена в УПП 1.3 в 20 раз!

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

Способ оптимизации чтения правил обмена конвертации данных. Может понадобиться при большом размере правил и высокой периодичности обмена.

27.06.2019    9249    0    YPermitin    16    

Хотите снизить нагрузку на процессор сервера в 2 раза?

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

В статье рассмотрено влияние частого запуска регламентных заданий на процессор сервера 1С.

27.06.2019    8810    0    Дмитрий74Чел    6    

Непридуманные истории по оптимизации. История 1

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

Первая статья из планируемого цикла об оптимизации приложений на базе 1С. Без теории. Одна практика.

13.06.2019    11975    0    Repich    117    

Оптимизация: неэффективные запросы

Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

13.06.2019    5535    0    slayer-ekb    10    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    22642    0    dmurk    144    

За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С

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

Мы расскажем и покажем, как добавить данные счетчиков производительности серверов 1С и MS SQL в нашу базу мониторинга за 15 минут. Приведем список наиболее важных из них, опишем основные особенности.

28.05.2019    17523    0    ivanov660    9    

Не думать о секундах свысока...

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

Несколько примеров оптимизации типовой конфигурации УТ11. Описанные приемы подходят для многих других конфигураций.

21.05.2019    7540    0    vasilev2015    21    

Альтернативная стратегия управления блокировками

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

Данная публикация освещает одну из альтернативных стратегий блокирования данных на уровне MS SQL Server, которая недоступна средствами 1С, но может быть весьма полезной. Разбирается практический пример.

20.05.2019    6769    0    zhichkin    15    

Как работают управляемые блокировки

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

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

29.04.2019    21026    0    comol    198    

Странное потребление места на диске С

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

Решение проблемы постоянного роста папки %AppData%/Local/Temp.

26.04.2019    13644    0    kuzyara    12    

Включение встроенного в платформу механизма "Копии базы данных" и использование "Дата Акселератора". Новый стандартный механизм использования баз OLAP в 1С

Производительность и оптимизация (HighLoad) v8 Россия Бесплатно (free)

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

25.04.2019    12970    0    Elf1k    27    

5 простых шагов и 15 минут на разворачивание инструмента мониторинга проблем производительности базы 1С

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

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

18.04.2019    27454    0    ivanov660    77    

Как разбить базу на файлы и не сойти с ума

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

Разбиение базы данных 1C на файлы и последующее сопровождение. Нюансы, грабли и прочее.

06.04.2019    14876    0    YPermitin    30    

Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз

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

В связи с санкциями и другими событиями сейчас все более и более актуальна тема перевода ПО компаний на отечественное и свободное программное обеспечение. Одной из самых востребанных СУБД на рынке на данный момент является PostgreSQL - надежная, высокопроизводительная и хорошо масштабируемая СУБД, которая является прямым конкуретном таким крупным компаниям с их топовыми продуктами, как Oracle, IBM и Microsoft. Однако каждый, кто переходит на PostgreSQL, сталкивается с трудностями, прежде всего с настройкой и производительностью. Не обошли проблемы с производительностью "слоника" и меня. Предлагаю вашему вниманию перевод статьи "How a single PostgreSQL config change improved slow query performance by 50x" автора Pavan Patibandla, которая мне помогла улучшить производительность PostgreSQL.

18.03.2019    14883    0    w.r.    23    

Простое программное решение проблем с блокировками SQL

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

Описание одного из способов программного решения проблемы блокировок при проведении документов в клиент-серверной 1С.

06.03.2019    8567    0    dmitrydemenew    38