Кружок 1С #1. Индексы в 1С теория и практика

  Рет қаралды 8,204

SoftOnIT.RU

SoftOnIT.RU

Күн бұрын

Поговорим сегодня с коллегами про индексы в 1С. И как индексирование влияет на запросы в 1С.
Решили записать рабочий доклад про индексы и разговор с коллегами, ну и что бы это дело не пропадало выложить на всеобщее обозрение. Формат новый и если нормально пойдет, продолжим.
В подготовке использовались материалы с сайта 1С ИТС
its.1c.ru/db/metod8dev/conten...
► Презентация: softonit.ru/downloads/video/k...
Таймкоды
00:00 Вводная часть
00:09 Про индексы простым языком
03:08 Кластерные и некластерные индексы
07:24 Как это выглядит на физическом уровне
10:09 Как выглядят индексы в 1С
10:48 Где прочитать про индексы 1С?
16:13 Проблема фрагментации индексов
19:18 Как посмотреть существующие индексы в 1С
21:37 Несоответствие индексов и условий запроса
25:18 Плюсы и минусы индексов
26:41 Примеры. Попадем в индекс или нет?
27:20 Пример 1
37:40 Пример 2
39:04 Пример 3
41:05 Типичная проблема 1
43:52 Типичная проблема 2
46:18 Обсуждение и вопросы
#софтонит #кружок #индексы #1с #доклад #презентация
softonit.ru

Пікірлер: 23
@nataliaboychuk1002
@nataliaboychuk1002 Жыл бұрын
Лектор сам "плавает" в предмете лекции
@Softonit
@Softonit Жыл бұрын
Это формат кружка. Собрались, кто-то сделал доклад, поговорили. Рассмотрели какие-то примеры. О том, что знать ответы на все вопросы, речи конечно же нет))) У меня (у "лектора") нет сертификата "1С:Эксперт по технологическим вопросам". Чтение документации, какие-то эксперименты, разбор примеров и т.д. Это путь изучения любого, кто занимается повышением производительности и чего-то не знать в этой теме, думаю нормально. Лично, не претендую на экспертность. Вы ведь тоже ищите ответы на свои вопросы, иначе зачем смотреть это видео? Поэтому, если есть конструктивные замечания к моим ответам, было бы здорово если бы вы написали именно об этом.
@valentkataev
@valentkataev 5 ай бұрын
После просмотра пару видео подписался, нужный контент. Спасибо.
@Softonit
@Softonit 5 ай бұрын
Спасибо за подписку!
@evgenyb6057
@evgenyb6057 Жыл бұрын
Типичная проблема 1: противоречит ИТС. "В основном условии оператор ИЛИ можно использовать только для последнего из используемых или единственного поля индекса, когда оператор ИЛИ можно заменить на оператор В". В указанном примере в индекс мы попадем, если поле Артикул проиндексировано. Так же - смотрим пример1 это Регистр Накопления, а на ИТС демонстрируются индексы Регистра Сведений. В данном случае нужно смотреть на индексы таблицы остатков. И еще момент - когда индексируются поля измерений, например 2 и 4, не значит что у нас будет создан индекс который будет как комбинация 2-4, такое возможно что только на стороне management studio на уровне SQL. 1С, по факту для каждого генерирует таблицу индексов согласно таблице с ИТС, комбинаций тут не будет. Будет два индекса 2-1-3-4 и 4-1-2-3.
@KarlayThe
@KarlayThe 8 ай бұрын
Хороший материал. Хоть и подача некоторым в коментах не нравится, но автор затронул довольно сложную тему, за что уже респект. Спасибо.
@Softonit
@Softonit 8 ай бұрын
Спасибо за отзыв. Действительно, подготовить качественный урок достаточно сложно. Т.к. тема сложная, а объяснения должны быть простыми.
@SMSobl
@SMSobl 2 жыл бұрын
28:32 - А если дополнить условие чем-то в стиле "&Склад В (Выбрать Ссылка из Справочник.Склады)", их же обычно в средней системе не супермного, не?
@Softonit
@Softonit 2 жыл бұрын
Если это решит ваши вопросы и при этом скорость работы будет в пределах ожиданий, то почему нет? :-)
@littleknight7876
@littleknight7876 Жыл бұрын
даже Ильюха Мэддисон здесь :D
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 3 ай бұрын
дауншифтнулся до 1сника
@ivdmal
@ivdmal 2 жыл бұрын
А если заменить "ГДЕ Артикул="001" ИЛИ Артикул="002"" на "ГДЕ Артикул В ("001", "002")", мы попадаем в индекс?
@Softonit
@Softonit 2 жыл бұрын
Надо бы это проверить в SQL Profiler... Есть ощущение, что оператор "В" работает так же как и ИЛИ (в таком случае рекомендуется переписать запрос на объединение запросов), однако вместе с тем на сайте ИТС на странице its.1c.ru/db/v8std/content/658/hdoc есть выдержка: "2. Оператор ИЛИ 2.1. В основном условии оператор ИЛИ можно использовать только для последнего из используемых или единственного поля индекса, когда оператор ИЛИ можно заменить на оператор В. ПРАВИЛЬНО: ГДЕ Таблица.Поле = &Значение1 ИЛИ Таблица.Поле = &Значение2 т.к. можно переписать при помощи оператора В (специально переписывать не нужно, можно оставить, как есть): ГДЕ Таблица.Поле В (&Значения)". Этот текст сбивает с толку и становится не понятно "В" это другое и отличается ли это от условия "ИЛИ".
@hagywagybabii5763
@hagywagybabii5763 2 жыл бұрын
42:00. А если я в условии сделаю ГДЕ АРТИКУЛ В("001", "002")
@Softonit
@Softonit 2 жыл бұрын
Спасибо за вопрос. 1С рекомендует не использовать оператор В, а использовать объединение запросов "... ГДЕ Артикул = "001" и "... ГДЕ Артикул = "002". Об этом написано в документации на сайте ИТС.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 3 ай бұрын
Можно чуть обобщить - индексы БД это частный случай индексов вообще.
@laretyn1917
@laretyn1917 Жыл бұрын
А если ставится условие на регистр с одним измерением составного типа "Документ": "Документ ССЫЛКА Документы.РеализацияТоваровУслуг". Индекс будет использоваться или индексы не работают на такие функции как например "ССЫЛКА", а только на равенство?
@Softonit
@Softonit Жыл бұрын
Как я понимаю, "Документ ССЫЛКА Документы.РеализацияТоваровУслуг" не использует индексы. Ее принцип работы в другом. Когда мы НЕ используем такую конструкцию, используется обращение к реквизитам регистратора. Регистратор является полем составного типа, которое может принимать значения ссылки на один из N-видов документов (сколько содержит составной тип). SQL-текст этого запроса будет включать N-левых соединений с таблицами документов. Это может привести к серьезным проблемам производительности при выполнении запроса. Эта конструкция, позволяет сделать ТОЛЬКО ОДНО левое соединение и только с документом РеализацияТоваровУслуг, что существенно ускоряет запрос. Подробнее на ИТС: its.1c.ru/db/v8std/content/654/hdoc
@RuslanKhamidoullin
@RuslanKhamidoullin 3 ай бұрын
Кластерный индекс 1, а кол-во столбцов в нём не обязательно должно быть 1.
@Softonit
@Softonit 3 ай бұрын
Верно! Спасибо
@MaiorovYury1
@MaiorovYury1 5 ай бұрын
15:30 после ответа на этот вопрос поставил дизлайк и выключил видео. Спасибо за старания, но лучше найти что-то более достоверное.
@Softonit
@Softonit 5 ай бұрын
Спасибо за отзыв. Было бы здорово если бы дополнили и привели бы дополнительные ссылки. С удовольствием бы добавили в описание. Такой информации мало никогда не бывает.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 3 ай бұрын
да, если не хватает последнего поля, то будет частичный а не полный перебор
The most impenetrable game in the world🐶?
00:13
LOL
Рет қаралды 13 МЛН
Did you find it?! 🤔✨✍️ #funnyart
00:11
Artistomg
Рет қаралды 118 МЛН
Типовые ошибки в условиях 1С запросов
14:37
Желтый клуб — 1С программирование
Рет қаралды 20 М.
Суть 1С программирования за 25 минут
26:44
Желтый клуб — 1С программирование
Рет қаралды 316 М.
Программист 1С, не пиши так!
16:51
IRONSKILLS - Курсы по 1С
Рет қаралды 26 М.
С Какой Высоты Разобьётся NOKIA3310 ?!😳
0:43
Apple watch hidden camera
0:34
_vector_
Рет қаралды 47 МЛН
#miniphone
0:18
Miniphone
Рет қаралды 9 МЛН
Nokia 3310 versus Red Hot Ball
0:37
PressTube
Рет қаралды 3,1 МЛН