parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

virusav 25.05.2015 22:07

Адреса я привел в качестве примера.

Для построения отчета нужной взять 1000 записей из одной таблицы, а по ним 5000 - из другой. По этим 5000 надо получить данные из третьей таблицы.
Если выбрать запросом данные из таблиц 2 и 3, а потом их перегнать в хеш, то все намного упростится.
При этом хеш можно сформировать, один раз прокрутив объединенную таблицу, к которой потом уже не будет обращений.

Если оставлять таблицы, то получим цикл на 1000 оборотов и столько же locate.
Для ускорения делаю выборку хеша таблиц из таблицы 2.
В итоге проверка имеет примерно такой вид:
^if(^tTable1.contains[$tTable1.field] && ^tTable1.locate($tTable1.field1==1 && ^tTable3.contains[$tTable1.field2] && $tTable3.field3==1))
т.е. связываем все 3 таблицы в одном, что не особо удобно.

Есть отчеты с бОльшим количеством записей в основном цикле, поэтому интересует, не будет ли вариант с хешем хешей работать быстрее многих locate.