Огромное спасибо за информацию! Думал, что достаточно придерживаться стандартов оптимизации запросов, а тут, как оказалось, не все так гладко когда переходишь на уровень ооочень больших данных. По выборке "В (ВЫБРАТЬ .. ИЗ ...)" в условиях виртуальной таблицы: проверял на записях до 1 млн, там она отрабатывала медленнее, чем внутреннее соединение виртуальной таблицы и таблицы задающей отбор (это при серверной базе). При файловой базе быстрее работает именно "В ()" в условиях. Получается, что при ооочень большом количестве записей серверная база начинает вести себя как файловая база (конкретно в данном примере, хотя может и в других случаях тоже, надо проверять).
@yellow_club3 жыл бұрын
Да, тема оптимизации бесконечна. Было бы что оптимизировать))
@mendicator43193 жыл бұрын
На больших выборках лучше заменить В на аналог exists в скуле. Достаточно написать (поле1, истина) В (ВЫБРАТЬ поле1, истина Из..). Тогда 1с оттранслирует запрос в exists,что будет работать в разы быстрее
@ОлегД-й9ш3 жыл бұрын
@@mendicator4319, спасибо! Можете подсказать, в "(поле1, истина) В (ВЫБРАТЬ поле1, истина Из..)" - "Истина" здесь какую роль выполняет?
@mendicator43193 жыл бұрын
@@ОлегД-й9ш никакую. Просто заставит оттранслировать запрос не в in(), а в exists()
@triviumfan94113 жыл бұрын
@@mendicator4319 очень интересно, проверю =)
@akrynetsky3 жыл бұрын
Мой совет - смотрите это видео целиком, т.к. там где спикер говорит, что нельзя использовать частицу НЕ, В(), ИЛИ это относится к выборкам из больших таблиц (Документов, РС, РН). Дальше уточняется, что НЕ и В() вполне можно использовать в предварительных ВТ, в которых готовим списки для ВНУТРЕНЕЕ СОЕДИНЕНИЕ. Очень полезный материал. Спасибо!
@luckdmst3 жыл бұрын
Я вообще никогда не оставлял комментариев ни под каким видео, а тут просто не удержался, хочу написать, точнее даже выразить огромную благодарность за проделанную работу!! Спасибо большое ребят за видео!!
@yellow_club3 жыл бұрын
Рад, что было полезно
@urasovd3 жыл бұрын
Thanks!
@yellow_club3 жыл бұрын
Велком)
@Rammbst3 жыл бұрын
Спасибо!
@yellow_club3 жыл бұрын
Какие ещё темы интересны?
@Rammbst3 жыл бұрын
@@yellow_club пока что не все стримы посмотрел) Но на практике были трудности по работе с xdto и http запросами. Возможно эти темы уже есть на канале и я до них просто не добрался. Ещё раз спасибо! По 1с на ютубе не так много каналов. Ваш однозначно в топ3 для меня!
@NastyaOsipova-m9l2 жыл бұрын
Это шикарное видео! Спасибо Артёму за кейсы. Нельзя просто так взять и написать сразу правильно 😂 А метрики использовать можно👍 Хочу так же😁 Было бы здорово в таком же формате посмотреть про настройку grafana.
@lero4ka_valero4ka_77 Жыл бұрын
Стоящее видео! Очень классно и приятно слушать. Бальзам на уши! Палец вверх поставил
@МарияО-ж4д3 жыл бұрын
Митап супер!!! 👍👍👍 просто 🔥 Подробно, подготовленно, понятно даже про сложные вещи 🤗 Большое пребольшое спасибо!!!!
@yellow_club3 жыл бұрын
Спасибо
@МарияО-ж4д3 жыл бұрын
Еще б такой же по оптимизации запросов для динамических списков на больших базах 🙃
@artemkuznetsov34433 жыл бұрын
Ну в целом - требования к запросам дин. списков те же самые. Тут обычно тормозит именно по причине того, что пользователь лезет туда, куда не надо, как при использовании {ГДЕ Поле.* } в СКД. Мы явно даём нужные поля, каждое использование ".*" в тексте запроса - должно быть обосновано разработчиком.
@artemkuznetsov34433 жыл бұрын
Мы, например, ограничиваем динсписки через ДинамическийСписок.УстановитьОграниченияИспользованияВОтборе и ДинамическийСписок.УстановитьОграниченияИспользованияВПорядке, передавая туда массив только индексированных полей.
@МарияО-ж4д3 жыл бұрын
Артем, спасибо!
@rusmus777 Жыл бұрын
Огромное спасибо за видео. Очень хочется прояснить такие вопросы: 1) 45:00 Пусть для примера у таблицы есть кластерный индекс "Измерение1"+"Измерение2". "Измерение1" принимает значения из ограниченного списка (например, перечисление или очень небольшой справочник). "Измерение2" принимает очень большое количество значений и обладает высокой селективностью. Большинство запросов к таблице имеют отбор по полю "Измерение1" плюс ещё что-то (например, "... ПЕРВЫЕ 1000 ... ГДЕ Измерение2 > &Мин ... УПОРЯДОЧИТЬ ПО Измерение2"). Надо улучшить запрос с отбором по некоторым значениям поля "Измерение2". Как лучше это сделать? А) Поменять поля в индексе местами. Насколько испортятся или останутся на прежней производительности большинство запросов? Б) Добавить индексирование по "Измерение2". При этом, скорее всего, новосозданный индекс будет размером в половину от кластерного. В) Сделать отбор по полю "Измерение1" из полного списка значений и отбор по полю "Измерение2". Г) Сгенерировать текст запроса из блоков, связанных через "ОБЪЕДИНИТЬ ВСЕ", и в каждом блоке отбирать "Измерение1" по одному значению. 2) 1:05:30 Вроде бы, как-раз где при количестве записей до 100 или до 1000 (по данным статистики) планировщик MS SQL применит полный обход таблицы независимо от наличия индексов.
@icsier2 жыл бұрын
Вопрос по примеру "ручного среза последних" (время 1:21:18): Рассматривали вариант помещения во временную таблицу строк с максимальным периодом? Что-то вроде ВЫБРАТЬ МАКСИМУМ(Период), ИДЗвонка ПОМЕСТИТЬ ВТ_СтатусыЗвонков ... СГРУППИРОВАТЬ ПО ИДЗвонка; ВЫБРАТЬ ВТ_СтатусыЗвонков.ИДЗвонка, ЖЗ.Статус ИЗ ВТ_СтатусыЗвонков ВНУТРЕННЕ СОЕДИНЕНИЕ РегистрСведений.ЖурналЗвонков КАК ЖЗ ПО ЖЗ.ИДЗвонка = ВТ_СтатусыЗвонков.ИДЗвонка И ЖЗ.Период = ВТ_СтатусыЗвонков.Период.
@QVRJ2 жыл бұрын
Тоже только к концу присмотрелся, что срез по другому считается
@ffonlfoff5005 Жыл бұрын
00:30:52 есть где нибудь в литературе почитать, почему не рекомендуется использовать таблицу СрезПоследних у регистра сведений подчиненного регистратору? То есть вообще не рекомендуется использовать или в каких то конкретных условиях? Понятное дело, что могут быть регистраторы составного типа, но какие там соединения происходят при запросе к БД, где можно наглядно посмотреть или прочитать? На ИТС по этому поводу не видел информации. Что тогда использовать в таком случае? Как оратор поступает в данном случае, если ему нужен срез из такой таблицы?
@Константин-ш6й7у Жыл бұрын
Спасибо большое, за такой замечательный митап. Было очень интересно смотреть!!! Теперь буду ждать митапа по поводу инфраструктуры в данной компании. Как взаимодействуют разработчики между собой, какими приложениями пользуются и т.д.
@yellow_club Жыл бұрын
Мы тоже ждём) но пока ребята не хотят рассказывать)
@daa51113 жыл бұрын
Ребята, спасибо Вам за проделанную работу
@yellow_club3 жыл бұрын
Спасибо
@ЕвгенийМ-н8и2 жыл бұрын
Спасибо за видео. Было бы еще интересно рассказать для администраторов как такую базу обслуживают в адекватные сроки. Имею ввиду пересчет статистики, перестроение индексов в SQL. От этого тоже зависит производительность, и на такой базе выполнить это в разумные сроки не всегда просто.
@Gluk15053 жыл бұрын
Только включил запись, поставил лайк, спасибо вам за то что вы делаете!
@yellow_club3 жыл бұрын
Рад, что полезно 🙏
@bekk_va Жыл бұрын
Очень познавательное видео, спасибо!
@СергейВикторович-и7т Жыл бұрын
Хочу работать с этим чуваком в команде
@bigMihanWhere2007 Жыл бұрын
Очень круто! спасибо!
@somebody-c3b2 жыл бұрын
Добрый день, коллеги. Артем к вам вопрос, если это конечно еще возможно, в этом моменте 49:00. Вы уходите от скана кластерного индекса и делаете как бы принудительный Key lookup. Но ведь если поле "Договор" является селективным и у вас актуальная статистика оптимизатор и так должен использовать индекс по полю договор. Разве нет? Не совсем понимаю в чем выгода в этом кейсе, при условии что статистику вы обновляете. Ну и поле Договор очень вероятно, что является высокоселективным. Если конечно в таблице "ВыдачаССостояниями" не 100500 тыщ строк
@TresModiosVir2 жыл бұрын
Поддержу вопрос. В целом сложилось впечатление, что за актуальностью статистики не следят, иначе все эти развороты срезов были бы не нужны.
@mobilitymoon523211 ай бұрын
Таблица временных индексов всегда скидывается на жесткий диск, что ведет к существенной потере скорости, однако, когда выборка записей больше 8 мб, то временная таблица в любом случае скидывается на хард, поэтому индексы во временных таблицах оправданы только в запросах на выборку больших данных. Если запрос выбирает небольшие данные, использование индексов будет сильно тормозить.
@ktoeto80943 жыл бұрын
Работа в качестве хоббито ) Спасибо, было очень интересно
@yellow_club3 жыл бұрын
Мне кажется у Артёма есть и другие хобби)) Надеюсь на это) Точно есть - как минимум исторические реконструкции.
@artemkuznetsov34433 жыл бұрын
Ага. Сноуборд, лазертаг, настольные игры, компьютерные игры. И еще я учусь играть на ударных :)
@TRIALEX33 жыл бұрын
Ничего не понятно, но очень интересно. Спасибо!
@yellow_club3 жыл бұрын
Значит есть куда расти ))
@NemanEnt3 жыл бұрын
Хочу информации об инструментах, которые рисуют все эти циферки про расходы времени и количества использований... Это какие-то готовые инструменты, или что-то дописывали? Сейчас тоже начинают всплывать вопросы по тормозам и хотелось бы их решать в порядке боли, а не как показалось.
@yellow_club3 жыл бұрын
Собираемся сделать такой выпуск. Скорее всего в январе-феврале
@mendicator43193 жыл бұрын
Да, вот это будет интересно
@sagittarius_s2 жыл бұрын
Это инструменты (их не мало), которые просто графически красиво показывают численные значения. А значения выдаёт сама платформа.
@АлександрГрунюшкин-г8ф2 жыл бұрын
Спасибо за видео и за контент в целом! Очень полезно. Взял на заметку. А можно как-то связаться с Артёмом или Дмитрием?
@МаринаПальцева-к9е3 жыл бұрын
спасибо за видео
@yellow_club3 жыл бұрын
Спасибо, что посмотрели
@IvanAndreychuk2 жыл бұрын
Меня больше заинтересовало как они вывели информацию по поводу каике отчеты сколько раз запускались и время выполнения. ТЖ не видел такого.
@triviumfan94113 жыл бұрын
Не хватает планов запросов. @Artem Kuznetsov, не понимаю, почему отрицание преобразуется в оператор "В". У меня такого нет. Запрос "Выбрать Ссылка Из Документ.ЗаказНаряд Где НЕ ВидРемонта = &ВидРемонта" преобразуется в "SELECT T1._IDRRef FROM dbo._Document321 T1 WHERE ((T1._Fld811 = @P1)) AND ((NOT (((T1._Fld2267RRef = @P2)))))", где @P1 - разделитель. Виды ремонта - справочник, с отборами по значению перечислений такое же условие. Используете ли дата акселератор? Если нет, то есть ли планы?
@al-e-kssc8132 жыл бұрын
А как у вас настроен технологический журнал, для такой метрики?
@АнтонХарченко-б5м Жыл бұрын
А что за консоль запросов на видео?
@filaretbusoni31353 жыл бұрын
Сделайте выпуск про настройку графиков графаны)
@yellow_club3 жыл бұрын
Постараемся, спасибо за предложение
@burundukoff84502 жыл бұрын
А можно видео как графану подключить и также красиво настроить ?
Подскажите при последнем примере условие выносятся в фигурные скобки, это необходимо делать в ответах на скд или в любых запросах? Как понять что объект подключён к РЛС, только посмотрев роли? Заранее спасибо
@SMSobl2 жыл бұрын
Можете делать в любых, но часть в фигурных скобках будет восприниматься только в СКД.
@sagittarius_s2 жыл бұрын
Расширяет кругозор, спасибо.
@budnikov3 жыл бұрын
Крутой контент
@yellow_club3 жыл бұрын
Рад, что понравилось
@АнтонКаруна-ш2ю2 жыл бұрын
где такую консоль запросов найти, чтоб как на видео показал количество записей в выборке (1час :30 минута)
@NemanEnt3 жыл бұрын
А почему докладчик применяет старый интерфейс УФ? Не такси. Есть какие-то причины производительности или просто вкусовщина?
@yellow_club3 жыл бұрын
Исторически сложилось. Зачем переходить на такси, если все сотрудники уже привыкли к этому интерфейсу?
@artemkuznetsov34433 жыл бұрын
Это из-за того, что конфигурация самописная, и написана под УФ, в Такси некоторые моменты ведут себя иначе, чем запланировано.
@ConstantinKubrakov3 жыл бұрын
Интересно, какой процент (количество) запросов из БСП пришлось оптимизировать?
@artemkuznetsov34433 жыл бұрын
Ну, у нас есть постоянное расширение для БСП своё, но этим занимаются другие люди - я сходу не скажу про объём изменений.
@АлександрГрунюшкин-г8ф2 жыл бұрын
@@artemkuznetsov3443 Артём, а вакансии у вас ещё есть?
@artemkuznetsov34432 жыл бұрын
@@АлександрГрунюшкин-г8ф На hh по компании "Центрофинанс" можно смотреть актуальные вакансии.
@akrynetsky3 жыл бұрын
42:58 Что это было? Впустил кота? :-) 46:08 Полтергейст? Кот?
@yellow_club3 жыл бұрын
Полтергейст ))
@artemkuznetsov34433 жыл бұрын
1-е - выпустил кошку. 2-е - супруга впустила кошку :)
@androidt1c2 жыл бұрын
То чувство, когда ты единственный программист на базе 2тб и 500 юзеров. И без дашбордов 😀 ибо и так все узкие места знаешь
@yellow_club2 жыл бұрын
Круто! как насчет выступить у нас?
@androidt1c2 жыл бұрын
@@yellow_club На самом деле ничего особенного, это я по вашим видео учусь. Просто фирма резко выросла, а штат ИТ-нет :) С управляемыми блокировками только пришлось тщательно повозиться.
@VitalikVasilev-j8x3 жыл бұрын
У меня на 8.1 УПП 6,6 Тб. По производительности все норм. Либо ты пишешь сразу хорошо и все летает, либо ты пишешь не правильно и ничего работать не будет. А так Платформа 1С конечно могет!
@yellow_club3 жыл бұрын
Вот я тоже не понимаю таких людей, которые сначала пишут плохо, а потом переделывают 😂😂😂 Почему нельзя было идеально сделать с первого раза 🤣🤣
@VitalikVasilev-j8x3 жыл бұрын
@@yellow_club да даже не идеально, а по стандартам разработки
@artemkuznetsov34433 жыл бұрын
Ну да, так и есть. В новом коде проблемы единичны с того момента, как начали применять стандарты. Почти всё - легаси.
@ЕрофейПалыч-р1щ3 жыл бұрын
@@artemkuznetsov3443 что такое легаси?
@yellow_club3 жыл бұрын
Легаси код - тяжелая наследственность : ) Устаревший код, который более не поддерживается и не обновляется, но используется. Второе значение - код от сторонних разработчиков, или из старых версий.
@ivans83323 жыл бұрын
интересно
@yellow_club3 жыл бұрын
Это хорошо)
@You2Ber423 жыл бұрын
Больно смотреть на это... Базы на 7 Tb с которыми работают по стандартам SQL 92 года, да хотя бы и 92, но там же даже от 92 года только 25% возможностей. Люди вваливают тонны денег в СУБД, железо, а потом ничего кроме SELECT сделать не могут. Все что им дано это кластерный индекс у которого первое поле с нулевой селективностью (разделитель) и .... и все. Героизм в крови, то с гранатой под танк, то вот 7Tb на 1С... Смотрел недавно hi load яндекса, был вопрос: "как вы решаете проблему с большимим базами?" Ответ: У нас нет больших баз, какие то данные лежат в columnstore какие то в mongo, там где требуются реляционные связи используется PG но так что у каждого сервиса своя PG
@user-sl1kv2yr7t3 жыл бұрын
1С никам это не понять. Реально. Они вот так и пробуют - ковырять в запросах гигабайты информации. И радуются как дети когда через одно известное место получается на секунду ускорить что-то. 10 лет назад это смотрелось ещё ну.. как реалии технологической платформы, сейчас уже как идиотизм.
@АлексейТ-ю9я2 жыл бұрын
Херню какую-то написали. Без приведения конкретных примеров для сравнения, ваш комментарий из разряда "мне для моих задач это не требуется, поэтому и вы делайте как я". А я вам скажу, что не на 1С ваша разработка будет стоить в 10 раз дороже.
@You2Ber422 жыл бұрын
@@АлексейТ-ю9я Какие примеры вы хотите в комментариях на Ютубе? Что касается "для моих задач" то 1с уже давно позиционируется не как Бух для ларьков а как серьезный универсальный hiload framework. Что касается дороже в 10 раз то дело не в скорости разработки а в том что 1с команды получают меньше ЗП в 3 раза, и сами команда меньше следовательно один человек делает больше работы. И мне как специалисту это сильно не нравится. Я хочу как в нормальном ИТ работать меньше получать больше.
@sagittarius_s2 жыл бұрын
@@You2Ber42, что-то не понял суть ответа.
@paulshemyakin14452 жыл бұрын
Пример с заявками не показательный вообще. Оптимизировать там имело смысл поэтапно - сначала убрать вычисления для начала и конца периода. Ясно что после этого запрос стал бы выполнятся за 1-2 сек. Что-то большие сомнения у меня, что оптимизатор после этого стал бы проверять каждую строку, а не то что было выбрано по периоду. Какой смысл все скидывать в ВТ, если по смыслу потом выполнялась бы та же самая операция, но уже по данным ВТ. Плюс если поле Шаг скорее всего не индексировано. Не надо зацикливаться на правилах. Знать их надо, но периодически подвергать сомнению тоже стоит.
@alexandrsevostyanov18422 жыл бұрын
Люди, сравнивающие, какой язык хороший, как плохой - странные. Работай в том, какой нравится. Мы же не сравниваем сварщика на строительстве домов и сварщика на строительстве судов, потому что все профессии важны
@ConstantinKubrakov3 жыл бұрын
Версия Палформы?
@yellow_club3 жыл бұрын
В Телеграм чате желтого клуба писали, что 8.3.17
@artemkuznetsov34433 жыл бұрын
8.3.17 сейчас, но уже выполняется поэтапный переход на 8.3.20
@АлексейТ-ю9я2 жыл бұрын
@@artemkuznetsov3443 а режим совместимости?
@OlegSimashkevych2 жыл бұрын
А агрегаты на больших регистра кто-то смог включить? Очень много часов включаются. Или это мертво рождённая фича?
@asstudio26133 жыл бұрын
Здравствуйте, я остаюсь у вас на канале, жду и вас у себя. Мне очень понравился ваш канал, удачи вам.
@lepaxtwin3 жыл бұрын
Свертка базы? Не, не слышал(с)
@artemkuznetsov34433 жыл бұрын
Я говорил об этом вроде - о свертке думают уже не первый год, но пока бизнес использует в том числе старые данные по движениям и резать не согласен.
@litium19882 жыл бұрын
Не претендую на истину, но компоновщик данных в дин.списках и СКД, сам добавляет РАЗРЕШЕННЫЕ в запрос, поэтому в теории это можно не добавлять, но понятно что в этой компании просто такой стандарт, и видимо воизбежании ошибок, что где то в модулях форм или объектов забудут это сделать, добавляют везде
@mobilitymoon523211 ай бұрын
Грустно, что 7 ТБ база должников
@alexsobolev9684 Жыл бұрын
Спикеру надо либо на рашн переходить либо целиком на инглише вещать (хотя, может, это я слишком стьюпид и стар - не секу модерновый спич и факаплюсь как ластовый лузер)
@pavelmaximov3912 жыл бұрын
1С и "быстро" это несовместимые вещи. 1С это для людей, которые медитируют. Нельзя сделать быстро из того, что работает изначально медленно. Опыт у меня в оптимизации достаточен. Здесь нет универсального подхода. К решениям в видео и подходах тоже есть претензии, просто вероятно никто не может это доказать (или не хочет). Самое распространенное заблуждение: создаешь ВТ - делай индексы. Ошибочное мнение. Создать индекс на пол миллиарда записей, а потом скуль решает его не использовать в силу своих мыслей и увеличивает время исполнения запроса на создание индекса что очень заметно. Проще пробежать все записи сканом
@АлексейОбухов-я1э2 жыл бұрын
После фразы "создать индекс на полмиллиарда записей" стоит уже задуматься о том, на кой ляд ты это сделал.. А уже потом решать вопрос, как всунуть это планировщику, чтобы он побыстрее пропихнул этот запрос.
@pavelmaximov3912 жыл бұрын
@@АлексейОбухов-я1э не надо пытаться понять "на кой ляд". Есть данные - надо их обработать.
@mendicator43193 жыл бұрын
консоль запросов такое убожество...
@yellow_club3 жыл бұрын
а что лучше?
@mendicator43193 жыл бұрын
В обычных формах, в инструментах разработчика, консоль. Функций и возможностей на порядок больше, а не " вот это все". ))
@yellow_club3 жыл бұрын
Да, в обычных формах консоль больше возможностей имеет
@NemanEnt3 жыл бұрын
@@mendicator4319 Тоже рыдал над консолью из обычных форм, когда перешёл на УФ. Прошёл все эти: отрицание, гнев, торг, депрессия, смирение :))))
@mendicator43193 жыл бұрын
@@NemanEnt потом смэрт? ))
@ДГоу3 жыл бұрын
Начните уже резать свои видео до минут 40-60. Ваши 5 минутки ге интересны. А два с лишним часа на просмотр найти очень сложно.
@yellow_club3 жыл бұрын
Будет сделано, спасибо за предложение 🙏
@АлексейТ-ю9я2 жыл бұрын
В чём проблема смотреть в несколько заходов на х2 скорости?