Провел тестирование.
В DD в секцию
Цитата:Регистр (Дв.) ОстаткиТоваров
была добавлена запись
Цитата:I=IIDDOC |of IDDOC |0 |IDDOC |IIDDOC
т.е. прописан индекс по IDDOC для табл движений регистра ОстаткиТоваров
Потом удален файл CDX для этого регистра. При монопольном входе 1С создала этот индекс
в новом файле CDX.
Тестовый запрос :
|SELECT
| $РегДвижений.IDDOC as IDDOC
|
|FROM <ПодЗапросПоЖурналу>
|
| LEFT JOIN $Регистр.ОстаткиТоваров as РегДвижений
|
| ON РегДвижений.iddoc = Подзапрос_Журнал.ИДЖур
Где <ПодЗапросПоЖурналу> - просто выборка ID за период
|(Select
| Жур.IDDoc as ИДЖур
| from 1sjourn as Жур
| WHERE
| DTOS(Жур.date)+Жур.time+Жур.iddoc BETWEEN (DTOS(:НачДата~~)+' ')
| AND (DTOS(:КонДата~~)+'ZZZZZZZZZZZZZZZ')
| AND (Жур.$ФлагРегистра.ОстаткиТоваров = 1)
| ) as Подзапрос_Журнал
Т.е. Тестируется соединение
ON РегДвижений.iddoc =
Результаты
1. Без этого индекса 0.217 с
2.С индексом 0.037 с
Т.е. в 7 раз! И это в тестовой базе, на живой обычно результаты еще больше.
Был проведен документ.
Результат : Индекс обновился.
Был изменен документ в конфигурации, т.е. даже не регистр.
Результат : Индекс был удален.
Итого : Наверно целесообразно писать скрипт по правке DD и удалению CDX.
Тогда не нужно применять сложного программирования чтобы попадать в индекс.
Достаточно стандартного SQL.
Файлы CDX будут существенно уменьшены.
Левые соединения регистров вообще по 1С индексам невозможно реализовать - а так это будет сразу.