用途:这是一个 1С 查询优化技能,用于在基础规则之外应用高级查询优化模式,适用于复杂多步数据处理、JOIN 与子查询优化、СКД 报表、大数据量处理等场景。
主要能力与实践要点:
- JOIN 与子查询:优先使用 JOIN;避免在 SELECT 中使用子查询造成 N+1。
- 禁止 JOIN 子查询,改用临时表:先 ПОМЕСТИТЬ ВТ 并 ИНДЕКСИРОВАТЬ ПО,再 JOIN。
- 虚拟表参数:过滤条件应放在虚拟表参数中,而非外层 ГДЕ。
- 复合类型使用 ВЫРАЗИТЬ 限定具体类型,避免按全部类型解析。
- 显示用 ПРЕДСТАВЛЕНИЕ 代替额外 JOIN。
- ГДЕ 中的 ИЛИ 会阻碍索引,可拆为两个查询并用 ОБЪЕДИНИТЬ ВСЕ。
- 无需去重时始终用 ОБЪЕДИНИТЬ ВСЕ,避免分组开销。
- 虚拟表先取入临时表再 JOIN。
- 索引要点:包含条件的全部字段、字段置于索引开头、字段连续无缺、JOIN 临时表时使用 ИНДЕКСИРОВАТЬ ПО。
使用方式:通过 /1c-query-opt 调用,按上述模式改写查询。限制:资料未提供具体版本适用范围、性能量化数据与除 ITS 优化标准外的更多参考。