vlad-1c писал(а) 02. Августа 2006 :: 00:41:Другая проблема с "ИндексированняТаблица"
1cpp-2.0.2.2, "ИндексированняТаблица" используется совместно с прямыми запросами:
ЗапросСписание.Загрузить(RS.ВыполнитьИнструкцию(ТекстЗапроса));
ЗапросСписание.ДобавитьИндекс("ДляПоиска","Продукция, Заказ, Материал") //тормоз?????? В таблице порядка 15000 строк, работает ну очень медленно - перебор стандартным запросом на порядок! быстрее. 90% времени всего отчета занимает "ЗапросСписание.ДобавитьИндекс" и 5% поиск строк:
СписокФильтра.УдалитьВсе();
СписокФильтра.ДобавитьЗначение(Продукция);
СписокФильтра.ДобавитьЗначение(Заказ);
СписокФильтра.ДобавитьЗначение(Материал);
Если ЗапросСписание.НайтиСтроку("ДляПоиска",СписокФильтра,,1) <> 0 Тогда
Списано = ЗапросСписание.Количество;
КонецЕсли;
Может кто, чего подскажет?
Разница на порядок по сравнению с чем? Из приведённого примера не совсем понятно.
Ну и если выгоднее использовать ТЗ - так почему её не использовать?
Для ускорения создания индекса рекомендую индексировать по внутренним представлениям. Т.е. так:
ЗапросСписание.ДобавитьИндекс("ДляПоиска","*Продукция, *Заказ, *Материал").
Поскольку данные вытаскиваются запросом, то возникает сомнение в том что нужны эти самые 15000 строк. Может надо как-то запрос переделать, чтоб лишнее отсечь? Впрочем, к ИТ это уже отношения не имеет
Кстати, раскладка 90% / 5% - это ещё одно подтверждение того, что далеко не все строки нужны.