Я решил начать цикл статей о том, как мы решаем те или иные технические проблемы связанные с 1С. В основном меня интересуют административные вопросы, то есть моя основная задача – сделать так, чтобы продуктивная система работала, несмотря на все попытки разработчиков и бизнес-аналитиков ее положить J
Говорил в предыдущих статьях, но напомню:
База ~4 Тб, 6 app серверов, 2 MS SQL сервера объединенных в AlwaysOn, сильно переписанная УТ 11.3.
В основном статьи будут небольшие, так как каждая будет охватывать только одну проблему. Если публике зайдет – буду писать пока будет материал. Если кого-то заинтересует сотрудничество или появятся технические вопросы – можно писать в личку.
Обращаю внимание – все нижеописанные проблемы имеют несколько решений, не всегда мое решение оптимальное, но оно точно помогло. Объективная критика приветствуется.
Итак, проблема этой недели. Повышенная нагрузка на ЦПУ в начале каждого часа и продолжающаяся примерно 5-10 минут.
Вот так выглядит проблема:
Вот более крупно самый большой всплеск в 21 час.
Следствием нагрузки на ЦПУ SQL сервера становится повышенный средний CALL (время вызова), а следовательно растет и время выполнения основных операций. Система «тормозит».
Причина всплеска на самом деле достаточно проста, у нас 3 с лишним тысячи магазинов по всей стране, в 16 часов по МСК начинают закрываться магазины. При закрытии магазина происходит много ресурсоемких операций, закрытие смены, печать документов, различные расчеты и прочее. В 21 час по МСК закрывается больше всего магазинов, поэтому и пик в это время наиболее длительный и высокий. Жалоб от пользователей не поступает, но… как то не аккуратненько.
Для решения решил посмотреть, а что за запросы массово выполняются в период с 20:55 до 21:20. Надеюсь вы собираете технологический журнал, потому что если не собираете – я не знаю, как вы анализируете ваши проблемы. Длинные call у меня собираются этим куском ТЖ:
<log location="D:TJ_logsLong_1" history="25"> <event> <eq property="name" value="DBMSSQL" /> <gt property="duration" value="10000" /> </event> <event>
Дальше у нас есть некое самописное ПО которое парсит технологический журнал и аккуратно складывает данные в базу MS SQL. Есть множество обработок на 1С делающие аналогичное, просто у нас объемы, с которыми 1С не справляется, мы используем C#, причем на создание и оптимизацию разработчик потратил пару месяцев.
Делаем запрос к БД и смотрим, какой контекст выполнялся за указанный период дольше всего:
SELECT TOP 10 Context, sum(_duration)/1000000, count(*)
FROM [1C_Log].[dbo].[TJ_Long_1]
WHERE _event = ‘DBMSSQL’
AND _eventDate between ‘2024-06-10 20:55’ and ‘2024-06-10 21:20’
GROUP by Context
ORDER by sum(_duration) DESC
Получаем такой результат.
Видим, что основное время SQL сервера уходит на первые две операции. Посмотрим на первый запрос, который выполняется в это время:
контекст:
SELECT top 1 sql
FROM [1C_Log].[dbo].[TJ_Long_1]
WHERE context = ‘Форма.Вызов : Обработка.ЗакрытиеДня.Форма.Форма.Модуль.ЗакрытьСобытияНаСервереОбработка.ЗакрытиеДня.Форма.Форма.Форма : 659 : СистемаИнформирования.ОтметитьВыполненностьСобытийСистемыИнформирования(ЗакрываемоеПодразделение); ОбщийМодуль.СистемаИнформирования.Модуль : 507 : РезультатЗапроса = Запрос.Выполнить();’
AND _eventDate between ‘2024-06-10 20:55’ and ‘2024-06-10 21:20’
Результат:
INSERT INTO #tt390 WITH(TABLOCK) (_Q_000_F_000, _Q_000_F_001, _Q_000_F_002RRef, _Q_000_F_003RRef, _Q_000_F_004_TYPE, _Q_000_F_004_RTRef, _Q_000_F_004_RRRef) SELECTMAX(T1._Fld24158),MAX(T1._Fld24162),T1._Fld24159RRef,T1._Fld24160RRef,T1._Fld24161_TYPE,T1._Fld24161_RTRef,T1._Fld24161_RRRefFROM dbo._InfoRg24157 T1WHERE ((T1._Fld26199 = ? AND T1._Fld773 = ?)) AND ((T1._Fld24159RRef = ?))GROUP BY T1._Fld24159RRef,T1._Fld24160RRef,T1._Fld24161_TYPE,T1._Fld24161_RTRef,T1._Fld24161_RRRefp_0: 0Np_1: 0Np_2: 0x80FA5CB9019038F011E7EAD0A1C5BCF8
Вставка во временную таблицу. Выделяем отсюда запрос
SELECT
MAX(T1._Fld24158),MAX(T1._Fld24162),T1._Fld24159RRef,T1._Fld24160RRef,
T1._Fld24161_TYPE,T1._Fld24161_RTRef,T1._Fld24161_RRRef
FROM dbo._InfoRg24157 T1
WHERE ((T1._Fld26199 = 0 AND T1._Fld773 = 0))
AND ((T1._Fld24159RRef = 0x80FA5CB9019038F011E7EAD0A1C5BCF8))
GROUP BY T1._Fld24159RRef,T1._Fld24160RRef,T1._Fld24161_TYPE,T1._Fld24161_RTRef,T1._Fld24161_RRRef
И выполняем его.
Видим, что время выполнения составляет 54 секунды. Как-то многовато. А сколько в таблице записей?
Многовато. Дальнейший анализ показал, что в данный регистр сведений каждый месяц записывается порядка 50 млн записей. Заведен дефект, чтобы бизнес-аналитики проанализировали необходимость такого количества записей в регистре, а мы пока попробуем временно решить проблему, пока не будет целевого решения.
Посмотрим на план запроса и на индекс, который нам предложит Management Studio
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[_InfoRg24157] ([_Fld24159RRef],[_Fld26199],[_Fld773])
INCLUDE ([_Fld24158],[_Fld24160RRef],[_Fld24161_TYPE],[_Fld24161_RTRef],[_Fld24161_RRRef],[_Fld24162])
Ну в принципе необходимость этого индекса мы могли бы предсказать и без помощи SQL, просто посмотрев на запрос и имеющиеся индексы, но так же проще J
ОК, немного упрощаем запрос, пишем:
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[_InfoRg24157] ([_Fld24159RRef])
INCLUDE ([_Fld24158],[_Fld24160RRef],[_Fld24161_TYPE],[_Fld24161_RTRef],[_Fld24161_RRRef],[_Fld24162])
WITH (ONLINE = ON)
Два поля мы убрали из индекса так как это общие реквизиты, у нас в базе они не используются (достались от типовой) и всегда равны 0.
Ну а ONLINE = ON нужно чтобы при построении индекса пользователи могли продолжать работу.
Итак, строим индекс, время на построение на продуктивной системе ушло 2.5 часа.
Результат нагрузки на SQL.
И выделим покрупней 21-ый час.
Видно, что нагрузка ушла. В Long данный контекст так же ушел из ТОП-10.
Задача решена.
Отличная статья.
Вы упомянули о собственном парсере технологического журнала на C#, было бы интересно посмотреть.
Если есть возможность включите это в следующую статью.
Вооо, годнота подъехала, ждем еще
Создание индекса не средствами платформы — это …
(3) Нарушение лицензионной политики, однако наш Sla с бизнесом таков, что просто так 30 минут простоя на создания индекса никто не даст, а динамически мне кажется платформа индекс создать не сможет. Хотя надо проверить. Когда будет согласованное «окно» — свой индекс удалю и появится созданный средствами платформы.
(1) немного об этом я буду рассказывать на Инфостарт-евенте, думаю уже после выступления смогу что-то опубликовать.
(4)
Нарушение чревато только тем, что 1С не гарантирует работоспособность своего ядра с вашими данными. На это можно положить прибор, ибо я сколько в 1С о чем ни жаловался — толку НОЛЬ. Они и без нарушения ЛС не смогут помочь — зарегят инцидент и лет через сто может быть что-то родят, а уж при нарушении даже и обратиться к ним нелья, чтобы они инцидент зарегили. А если нет разницы, то зачем платить больше? (с)
(6) Нам попроще, у нас два проекта с ЦКТП и участие в бета-тестировании платформы.
(3) если на ИТС есть что-то, что описывает создание индекса не средствами платформы, значит создавать индекс не средствами платформы можно. А на ИТС много чего такого есть, так что не факт, что это нарушение.
ЗЫ: да и зная 1С и ее тормознутость обращать внимание на этот пункт вообще смысла не имеет, ибо одна реструктуризация чуть-немного-большой таблички средствами платформы (такими, как запрос в цикле, результатом которого и является эта процедура реструктуризации) занимает бесконечное время процессора (квадриллионы инструкций).
(8)
Сомнительный бонус от 1С)))
По тексту, то мое ИМХО в том, что достаточно было бы индекса по одному полю: «_Fld24159RRef», ибо по нему фильтруется таблица. А для агрегации все-равно собирается хеш-таблица, построение которой от индекса не зависит.
ЗЫ: ну и выпилить из самого запроса эти нулевые поля.
Учитывая тормознутость современных типовых решений, боюсь даже представить себе цены на железо и лицензии, чтоб типовая конфигурация УТ 11.4 работала с приемлемой скоростью, хотя бы в части выписки и печати первички.
(11) Согласен. Это издержки попыток сделать универсальное решение. Тут случайно наткнулись, что у нас при выписке заказа каждый раз выполняется запрос на частоту использования реквизитов только для того, чтобы подставить в поля наиболее используемые реквизиты. Конечно кто-то будет пищать от такого решения, но блин, +20 секунд к вводу документа это перебор.
(12) Да, знакомо все это. Этот функционал называется заполнение объектов по статистике. Функциональной опцией не отключить, необходимо ставить заглушку в ЗаполнениеСвойствПоСтатистикеПереопределяемый.ПриОпределенииЗначенияРеквизитаПоСтатистике(): СтандартнаяОбработка = Ложь;
Я это очень хорошо изучил и могу привести ещё десятка два подобных примеров из УТ 11, но в этом нет никакого смысла. Мы отказались от внедрения УТ 11.4 в пользу УТ 10.3. При всем уважении, толстый клиент 10.3 кратно производительнее тонкого 11.4. Уверен, 11.4 — это тупик.
Мы сидим на УТ 10.3 с 2011-го, Рассматривали релизы УТ 11.2, 11.3, 11.4. Пока всё ещё говорим им нет.
Помню как неделю переводил форму путевого листа с обычной формы на управляемую. Причем 4 дня добивался нормального выравнивания полей, и нормальной работы при изменении размеров формы. Помню сколько тогда психовал, потому что обычную форму набрал бы на пару часов. Думал хуже уже быть не может. Но потом я наткнулся на необходимость выдать вопрос пользователю при записи в форме, и тогда, я думаю, что заглянул в потусторонний мир.
(15) вот так описывается проблема взросления программиста, впервые столкнувшегося с управляемой формой и асинхронностью)))
Отличная статья! Ждем продолжения!
(13)А можно поподробней
Если поняли причину а именно что это происходит при закрытие смены то почему сразу не начать смотреть что же в этом закрытие такого тормозного?
Ну, автор в принципе всё написал, хотите уменьшить время открытия формы при создании новых документов на 20 секунд — отключите заполнение объектов по частотной статистике. К сожалению, 1с сочло время 20 секунд на каждом новом документе не существенным, и поэтому не предоставила функциональной опции для его отключения.
Отключить можно в переопределяемом модуле как я написал выше.
(19) Не очень понял вопрос. Именно это и сделали. Или вы имеете в виду — почему не начали смотреть 1С-ный код?
(21)Да, то есть ошибка в 21-00 что все делают понятно, закрывают смены. Зачем лесть в ТЖ, план запросов и т.д. а сразу не пробежатся замером времени по закрытию. Или таким образом не увидели бы проблему?
(22) Там выполняется огромное количество операций, отправка документов в систему документооборота, допроведение пробитых чеков, сверка данных 1С и ФР и еще десяток разных процессов. Несомненно можно было отдать проблему разработчикам на анализ, но он занял бы несколько дней. Даже просто чтобы подготовить базу для выполнения замера (на проде замер не сделаешь, только на копии) ушло бы примерно 8 часов.
(23)Понятно, все дело в масштабах.
(13) Приведите пожалуйста прочие примеры, помогите тем, кто на УТ11 перешёл и не смог найти затыки сам.
(7) во второй версии это уже не так
(26) Кстати да, новый формат реструктуризации как луч света был когда мы начали его использовать. Теперь обновление обычно выполняется за 5 минут, иногда доходит до 20.
(25) Думаю, коллеги меня поддержат, это тема для отдельной очень грустной статьи. Ну навскидку, пример номер два:
ПродажиСервер.ПолучитьОтветственногоПоСкладу() — вызывается при инициализации реализации и заполняет необязательный реквизит Отпустил и ОтпустилДолжность примерными значениями.
Показать
Как вы думаете, что будет если у вас хотя бы 250 тыс. реализаций в год?
(4) сможет ли платформа сделать индекс онлайн — вот в чем вопрос …
(27) что за новый формат реструктуризации — можно ссылку?
(30)https://wonderland.v8.1c.ru/blog/optimizatsiya-restrukturizatsii-bazy-dannykh/
Ну и на its.1c.ru поищи UpdateDBCfg
1. Profiler
2. sys.dm_exec_query_stats
3. Extended events
Люди! Вот вы тратите огромные усилия, время, и деньги, чтобы сделать что-то съедобное из такого говна, как УТ 11. А вам не приходило в голову потратить примерно в 10 раз меньше усилий на написание своей толковой конфигурации, и дальше жить спокойно, не зная о половине проблем , которые вы так героически решаете ,. вообще ничего ?
(13) Напишите статью об этом. Многие внедренцы и клиенты не знают о нюансах. Все попадаются на крючок той программы, за которые уплачены деньги….
(33) идея здравая, Булпи, уж очень часто вы ее повторяете, и особенно , как вы не любите ут 11. 🙂
(0)
выделите крупно и жирно
(33) Хм, я вообще нигде не написал, что решаю проблемы связанные с типовой. 99% решаемых проблем к типовому функционалу не относится никак.
(35) Да правильно повторяет. Типовые конфы, особенно с управляемым интерфейсом, жутчайшие жадные тормоза, где в жертву «вау-интерфейсу» и бантикам принесено практически всё. Архитектурно это тихий ужас. С точки зрения кода, его оптимальности, изменяемости, да просто структурированности — тоже. Поэтому только так — писать свою и затачивать конструкции данных сразу под конкретные задачи, а не пытаться превратить люксовый капризный лимузин в суровый надёжный джип.
Я другого не понимаю. Откуда столько восторга от публикации, где а) описываются известные опубликованные ранее общие приёмы анализа, б) упоминается некое не-общедоступное самописное ПО не-1С, в) предложенное решение узкое, частное и временное, и не средствами 1С.
Чего нового и хорошего в этой статье, а?
Ну давайте я вам расскажу, как закрытие бух.периода убыстрил с полутора часов до семи минут. Написав 4 символа. Давайте? А мне за это более 200 плюсов?)) Оптимизация, тыкскзть!
(33)
Можно пример самописной толковой конфигурации по функциональности сопоставимой с УТ 11?
Сколько видел «сейчас мы сами напишем», выглядело это ещё хуже чем дописанная УТ11. И по функциональности как то проигрывало.
(39) Хотите расскажу о том, что когда в каталоге временных файлов более 2 миллионов объектов платформа начинает тормозить, но дело совсем не в платформе? Хотя зачем, это все уже давно опубликовано, просто надо знать где искать.
(41) Знаю, сталкивался. Это и сама винда начинает тормозить. Вы лучше объясните мне, какая прикладная польза с вашей публикации. Пока я вижу лишь одну — подтверждение мысли, что нефиг связываться с типовыми конфами, пусть сто раз переделанными. Ну и что если нельзя нарушать лицензионное соглашение, но очень надо, то можно — как ещё Богачёв во время оно рассказывал про «Деловые линии», и что скуль знать надо помимо 1С. А ещё?
(38) согласен с вами. в этом мы едины.
(42) Я не понимаю зачем народ зацепился про типовые. Я строил индекс на нетиповой регистр. И повторяю еще раз — 99% моей работы — исправление говнокода или говноархитектуры внутренних разработчиков. Это не значит, что они плохие, просто не все понимают, как их решение будет работать на 600 транзакциях в минуту.
Нарушение лицензионного соглашения очень спорный вопрос, так как например смотрите:
У меня два сервера в AlwaysOn. Один из серверов подключен к app серверу. Я строю индекс на второй, неактивной ноде и он появляется на основной базе. Является ли это нарушением с точки зрения лицензионной политики? Я задавал данный вопрос в 1С, ответ не получил, а наставить не стал.
Основных причин три:
1. Сохранить информацию на память для себя.
2. Показать своим сотрудникам, что именно делается на продуктиве и какими средствами.
3. Показать людям, которые еще не умеют это делать, показать, что это не сложно и принудить к изучению нового. Показать, что 1С это не только код, но и инфраструктура.
(39) я периодически стараюсь вставить свои 5 копеек, когда пишу под такими публикациями — что надо начинать с кода, с общения с пользователями, с замера производительности ….
(40) многие организации из типовой ут 11 используют 5% функционала, для них можно было бы самописку разработать, только кто будет программировать за 22600р? это стоимость ут 11.
(41) на ИС есть опытные , а есть еще не опытные. Плюсы ставят не опытные. Спорите вы с опытными. В общем, близко к сердцу не принимайте критику. Польза все-таки есть — каждый для себя ее определяет по своему…
(9) на крупных проектах без такого статуса многие просто бы не взялись внедрять 1с. И это единственное конкурентное преимущество отечественной платформы.
(47) Я пока не увидел аргументированного спора у опытных. Поэтому давайте или спорить аргументированно либо не спорить совсем. Пока я вижу только фразы вида «зачем вы здесь это написали, это никому не нужно», которые ни аргументами ни критикой не считаю.
И да, я так понимаю, что тут принято поклоняться плюсикам? Не очень понимаю смысл этого, за плюсиками не гонюсь, что на них покупать не знаю.
(49) Кому-то стало жалко плюсиков.
Статья хорошая, спасибо автору за труд.
(49) 50 плюсиков = 30 стартманей.
(51) Сейчас начнется торговля плюсиками за возврат)))
(51) И чего с ними делать? Конвертировать в рубли? Тратить несколько часов личной жизни чтобы с некоторой вероятностью заработать 2500 рублей? Сомнительное удовольствие.
(52)теперь надо как в кинорейтингах. Сколько плюсиков публикация насобирала в первые две недели
прокатаи сколько всего.Интересно, что ответят ваши 1С-ники. Может там вообще можно отказаться от такого запроса, провести «умную» ручную оптимизацию и индексы не пришлось бы менять.
(55) Предварительный результат — нужно не отмечать запись как «Выполненную», а удалять ее. Таким образом количество строк в регистре сократится тысяч до 100.
Важно(!) Отказаться от запроса — значит взять задачу в спринт, проставить ей приоритет и потом выпустить в релизе. Это от 2 недель до 3 месяцев. Мне же хотелось результат здесь и сейчас.
(49) говорю же, не принимайте близко к сердцу
пишите еще, если есть чем делиться, жду Историю 2, Историю 3 ….
(56)
по какой системе управляете?
на какой программе учет задач ведете?
релиз через 3 месяца — людей не хватает?
(49) иногда публикация дает повод для диалога — и тогда в комментариях дополнительно возникает польза от общения
(58)
1. Scrum, не канонический, но какой уж получился. Всех устраивает пока.
2. TFS+Jira.
3. Их всегда не хватает, но в данном случае просто задача не приоритетная. Жалоб от пользователей нет, значит нет инцидентов. Нет инцидентов — задача без дополнительных пинков с моей стороны как релиз-менеджера уйдет в самый низ списка.
(40) Насчёт УТ 11 не скажу, а УТ 10.3 и многие плюшки 11-й — есть и неплохо работает. Если что, велкам в личку.
(45) Вот да, иногда безо всяких профайлеров и даже, пардон за ересь, при выключенном ТЖ, хватает банального замера производительности и внимательного курения кода и запросов.
А насчёт пользы от статьи — я так и не проникся.
1. Если для себя и на память, то, может, не стоит превращать ИС в личный бложик?
2. А завтра вы ИС будете использовать как площадку обучения своих юзеров?
3. Пока что вы показали несколько скриншотов и решение одного очень узкого кейса. Желающим реально познавать — для начала Филиппова в руки и айда.
(47) Плюсы, походу, инстинктивно ставят действительно неопытные, на которых фразы навроде «тонкости разделяемых блокировок» или «уровни изоляции», или там «оптимизация кластерного индекса» оказывают магическое и гипнотическое действие. Непонятно что, неясно нафига, очевидно не для всех, но ооочень круто. А реально — бывает разное, от правда толковых статей (как вотhttps://infostart.ru/public/1003601/ допустим) до всяких дневничковых записей вроде этой.
(40)
Такой нет 🙂 А почему ? Да потому, что не нужно. Десятки более простых есть (ну, десятки — это если считать еще с версии 7.7), а такой нет. И не будет. Потому, что для решения конкретной бизнес-задачи такой монстр в принципе не нужен. Я Вам открою страшную тайну : типовые конфигурации пишутся не с целью создать классное ПО , и не с целью удовлетворить клиентов. А с целью срубить как можно больше бабла. Помните об этом, и Вам многое станет ясно.
(46)
Таки есть 🙂 Я реально такое делал.
(65) почему вы не пишите статьи? делитесь знаниями! а то весь опыт с вами и останется по итогу карьеры. сделайте мир 1с-ников лучше!
(64) не могли бы вы рассказать что именно включается в стоимость обслуживания или внедрения типовых конфигураций.
(66)Имхо, статьи нужны в начале карьеры для того чтобы облегчить продвижение и выстроить репутацию.
В конце карьеры можно найти массу более полезных способов потратить время и накопленный опыт, чем написание статей за стартмани.
(66) Рустем, а что вам не нравится сейчас в мире 1с-ников?
(68) я начинал писать статьи еще тогда, когда стартмани не были введены в оборот… моя мотивация отнюдь не
(68)
🙁
(69)
(66)
поясню свою фразу — я легче справлюсь с задачей из новой области знаний, если кто-то опишет свой путь «решения вопроса»…
по итогу, Инфостарт выручает по многим вопросам — некоторые задачи решаются быстрее обычного…
(71) какие области знаний в 1с — новые?
Будете ли вы теперь писать статьи за стартмани?
Или вас демотивировала такая форма оплаты за ваше творчество?
(72) «новые» для меня — те, которых я не касался еще.
у каждого своя наработанная компетенция. значит, нет опыта в других областях 1С.
лично про меня — я не знаю мобильную платформу, json, многие типовые конфигурации не внедрял, разработкой на УФ не занимался…
(72)
у меня мотивация — не оставить свой опыт внутри себя — написать обработку за 5 тыс. рублей и понять, что она может пригодиться еще кому-то, поделиться ею.
плюс, порой я вижу как сложно мыслят и программируют некоторые программисты, хочется поделиться своим видением.
(74) а почему они сложно мыслят и программируют, как вы считаете?
(29) Нет. Не сможет. Есть обходное решение, но оно костыльное, через копию регистра.
(66)
Я пишу статьи в том случае, если в моем знании есть некоторая универсальность. Какой смысл в статье о том, как я круто описал учет какой-то очень конкретной частной фирмы ?
(67)
Это вопрос не сюда. А в фирму франчайзи. У них есть какие-то более-менее формальные расценки. Я беру «с потолка» — за сколько мне было бы не лень это сделать 🙂
(78) но ваши клиенты в курсе, что они имеют право по условию подписки на диск ИТС получить бесплатную консультацию 1или 2часа в месяц от фирмы франчайзи, которая осуществляет подписку на ИТС?
Зачем вообще по вашему мнению, как фрилансера или фикси выполнять привязку продажи 1с лицензий и итс к какой-либо фирме-франчайзи?
(75) люди — разные, характеры — разные, опыт, уровень базовых знаний, учителя разные были, разное желание и возможности изучать новое, углублять знания, технологии развиваются быстрее, чем мы успеваем это осознать… в общем-то, эта дискуссия из другой ветки…
Недавно начал писать свою процедуру в MSSQL. Объемы данных таковы, что 1С или сторонние приложения их просто не обработают за приемлемое время. Первые версии процедуры отрабатывали примерно за 2 часа. Но мне это показалось много и я решил посмотреть план запросов и сделать все по феншую оптимизации. По рекомендациям студии и глядя на не оптимальные планы запросов я добавил индексы и статистики. Время выполнения процедуры стало занимать 5 часов, планы запросов преобразились, стали красивыми, больше никаких рекомендаций от стадии я не получал. Игрался с набором индексов, их составом, кластерностью, некластерностью, временем их создания (до вставки или после).
После недельной битвы удалил все, что было связано с индексами и статистиками по полям из процедуры. Время выполнения процедуры стало 1.5 часа. Планы запросов ужасны, студия ругается, но главное время выполнения процедуры стало предсказуемым, стабильным и приемлемым.
Так я всё ж не понял, какова для посетителей ИС польза от вашего рассказа? Какие выводы? Имхо — совершенно нулевая и никаких.
и кстати реально интересно, что думает администрация и модераторы ИС на тему чуть ли не пропаганды нарушения лицензионных соглашений.
(79)
Снова вопрос не ко мне.
1)Если конфигурация самописаная, то при чем тут франчайзи?
2)Если типовая, то 1- 2 часа — это вообще ничто. И подписка всего 3 месяца.
(82) А можете рассказать про свою мотивацию при чтении абсолютно бесполезной статьи и дальнейшем ее комментировании? Мне действительно интересно — зачем? Я вот например просмотрел список ваших работ, но у меня даже мыслей не было зайти и оставить комментарий — «никому не нужны ваши поделки, которые нормальный программист сделает за вечер, да еще и деньги за это платить», потому что понимаю — что это не так. А у вас какая мотивация?
(84) вероятно для того чтобы вы задумались об этом.
Нет дыма без огня.
Видите ли, есть люди, у которых «караван идёт со скоростью хромой лошади», а есть люди у которых «семеро одного не ждут».
Имхо, все подобные высказывания появляются когда очередная хромая лошадь ошиблась и вместо каравана попала в команду спринтеров.
Но тут как вы понимаете вопрос в ценности груза и самой возможности замены, а не в хорошем отношении к лошадям.
Сколько стоит день простоя на вашем предприятии?
Каков конкурс на вакансию для такого специалиста?
(85) Ничего не понял, можете без экивоков и странных аналогий? Я что ли хромая лошадь которая ошиблась?
День простоя стоит дорого. Я думаю миллиарды долларов, если мы говорим про все предприятие в целом.
О вакансии какого специалисты вы говорите?
(86) Вы не считаете, что публикация серии таких рассказов способна вырастить множество специалистов, которые станут со временем вашими конкурентами (если я правильно понимаю вопрос в (82)).
Хромых у нас хватает.. у нас не хватает практики в задачах по оптимизации.
Так хоть почитаем (хотя это направление возможно для инфостарта как магазина разработок не выгодно, вы предлагаете не разработку, а ноу-хау).
(87) Я вижу в (82) негодование, что статья совершенно бесполезна и неприменима.
Конкуренции не боюсь, описанное выше — не основная моя функция на текущем рабочем месте.
(39) а давайте
(75) это локальное проявление фундаментального закона стремления природы к хаосу. Чем проще, тем больше порядка, а упорядочивать вселенную всегда сложно.
(39)
Рэперы собирают стадионы, а оперные певцы камерные залы. Так всегда и было и будет. Вас же не удивляет популярностьпубликаций из справки 1С .
Я уже давно привык и вам советую.
(84) Я ж объяснил — ваш-то опыт никто применить не сможет, слишком узкий кейс. Мои поделки всё-таки более широкой применимости. Я искренне недоумеваю, зачем такое публиковать; это действительно сродни рассказам быличек у костра из серии «а вот был у меня случай». У каждого таких случаев множество, зачем их делать как статью?
(87) Ладно бы человек предлагал годное ноу-хау, так ведь это одна правка «по месту» в одном конкретном случае, и не средствами 1С. Ну вот смысл?
(92) Честно? Не просто удивляет, а бесит. Или когда публичный общедоступный ИТС репостят, или «зазеркалье». Происходит замусоривание целевого предметного ресурса, и это снижает его полезность. Или я неправ?
(95) Правы, но не стоит так переживать.
«Разумный человек приспосабливается к миру…»
(93) у автора История-1. будут еще История-2 и История-3… пож-та, не отбивайте желание писать статьи…
(95) Вы неправы в том, что в этой теме от вас слишком много чернухи.
Вы напомнили мне не профессионального специалиста, а «сварливую бабу».
Хватит ныть, согласен с (97)
(86)
Вчера где то читал что Huawei оценили убытки от санкций США в 35 млрд долларов в год. Боюсь даже спросить что у вас за предприятие если у вас убытки миллиарды долларов за день простоя.
(103) Да, пожалуй с ноликом ошибся. Очень грубо на NASDAQ компания стоит $3 млрд, падение на целый день я думаю обрушит акции процентов на 5.