Управление индексами #4
Labels
Запланировано
Реализация появилась в планах развития платформы
НовыеВозможности
от Магнит
Предложение от сотрудников компании Магнит
Предложение
New feature or request
ХранениеДанных
Milestone
Проблематика
Нет возможности создавать некластерные индексы, содержащие несколько реквизитов/измерений/ресурсов в заданном порядке. Использование индексирования с доп.упорядочиванием не позволяет явно указывать порядок колонок в индексе и не позволяет создавать несколько индексов с разным порядком полей. В ряде случаев этого достаточно, иногда ситуацию улучшают пересечения индексов. Но иногда для запроса нет подходящего индекса. Особенно часто так происходит с аналитическими или проверочными отчётами, которые используют не типичные для таблицы отборы.
Для многих объектов нет возможности влиять на состав кластерного индекса.
Нет возможности использовать included columns. Из-за чего усложняется реализация покрывающих индексов для запросов, выбирающих большие объёмы данных.
Нет возможности создавать фильтрованные индексы.
Некоторые служебные поля вообще не могут быть включены ни в один индекс. Например, «Активность» регистра накопления или «НомерСтроки» табличной части. В результате, при использовании этих полей в запросе, покрывающим может быть только кластерный индекс. При работе с большими выборками, это приводит к сканированию кластерного индекса или ресурсоёмким key lookup.
Нет возможности использовать некластерные колоночные индексы или создавать индексируемые представления с кластерными колоночными индексами.
Данный список не полный, но решение даже этих проблем существенно расширит возможности пользователя при работе с большими базами данных.
При этом эти ограничения воспринимаются как искусственные, т.к. фактически эти манипуляции с индексами можно проделать при работе напрямую с СУБД. Более того:
Администрирование базы данных и расследование проблем производительности всё равно требует работать с БД напрямую.
Иногда, изменение структуры таблиц БД рассматривается как приемлемое решение на тренинге 1С:Эксперт.
Предлагается расширить возможности разработчика по работе с индексами таблиц, а именно:
Доработать интерфейс конфигуратора в части редактирования свойств объектов таким образом, чтобы дать разработчику создавать и настраивать индексы в терминах объектов метаданных.
Предлагаемое решение
Расширить возможность настройки индексов таблиц.
Вместо существующего подхода, при котором для полей устанавливается режим индексирования, предлагается добавить новую закладку в редактор свойств объекта метаданных.
Свойство «Индексировать» реквизитов/измерений/ресурсов удаляется с панели свойств.
При переходе на новую версию платформы, настройки индексирования объекта не теряются – на их основании создаются новые объекты конфигурации. На скриншоте ниже, индексы «ПоСсылке», «ПоДате», «ПоНомеру» и «ПоПрефиксу» были созданы автоматически при переходе на новую версию платформы. Таким образом, никаких дополнительных действий разработчика конфигурации при переходе не потребуется.
Новая закладка должна позволять работать с индексами как с отдельными объектами конфигурации по аналогии с табличными частями. При этом для каждой таблицы объекта индексы задаются отдельно. На скриншоте выше, поле выбора таблицы для редактирования находится сверху.
Иконки индексов и полей в индексах позволяют быстрее ориентироваться. Например, на скриншоте жёлтым кругом отмечены индексы, соответствующие типовому поведению платформы, а голубым – созданные или измененные разработчиком конфигурации. Стрелка на иконке индекса говорит о том, что он кластерный. У полей – серой чертой отмечены стандартные реквизиты, синей – пользовательские. Такие обозначения приведены для примера, полный перечень подлежит проработке.
Для индекса допустима установка следующих параметров:
Добавление полей возможно из фиксированного списка, который определяется как:
При изменении объекта метаданных в конфигураторе, который может влиять на индексы таблиц (например, общий реквизит, критерий отбора, свойство «Ведущее» и т.д.), выполнять проверку:
Кнопка «По умолчанию для объекта» открывает окно с выбором индексов, которые система предлагает построить для объекта по умолчанию. Данные выводятся в виде дерева. Для каждой строки можно поставить флажок. Для описанного выше примера (см. скриншот выше) в окне индексов по умолчанию будет выведен перечень из индексов: «ПоСсылке», «ПоДате», «ПоНомеру» и «ПоПрефиксу». При этом, если разработчик конфигурации в окне работы с индексами удалит индекс «ПоПрефиксу», то в окне индексов по умолчанию, он будет выведен как предлагаемый к созданию. Это позволит разработчику конфигурации контролировать наличие критичных для работы индексов и при необходимости возвращаться к структуре индексов по умолчанию. Достаточно будет выбрать индекс «ПоПрефиксу» флажком и нажать кнопку.
The text was updated successfully, but these errors were encountered: