А если FetchAll для обеих запросов сделать?


Дык у меня в настройка IBExpert-a стоит FetchAll по-умолчанию. И был
сделан FetchAll, т.к. IBExpert вернул одинаковое кол-во записей для
обоих запросов (по сути количество записей в справочнике TABL$TMC).

Слушай, а ты часом не за "Fetches from cache" уцепился ?



Ну да. Ежели оно такое разное, при выковыривании одних и тех же данных, то первое, что в голову приходит - неполный фетч для одного из вариантов. Следующей версией видимо был-бы как раз неверный план. Но тут тебе Ded уже все растолковал... Кстати у меня на подобных запросах обычно оптимизатор и сам нормально справляется, без подсказок. Тут еще маленько почитал статью. Я б уж коли упомянул бы ES, то постарался бы привести пример, в котором от него прок какой-никакой был. К примеру написал бы код, который в один проход упорядоченно по коду товара табличку остатков вычитывает и по смене кода товара выдает накопленные остатки. Всяко быстрее работать будет. Кроме того стоит упомянуть о том, что все это можно перевернуть на клиенте. Как многие и делают. Создать к примеру ClientDataSet с нужным количеством полей, вычитать данные из таблицы остатков и заполнить созданную табличку. Коду - 10-20 строк. Кроме того, всю эту работу умеют многие генераторы отчетов делать. Ну и инструментов OLAP хватает у которых возможностей поболе будет. Об этом тоже упомянуть бы стоило.

With b/r. Gleb.

P.S. Вообщем-то ты сам просил попинать, так что не обижайся, если что.
P.P.S. А по сравнению с другими статьями про FB на delphiplus этo всеж-таки определенный шаг вперед. Там столько бреда откровенного понаписано... (это мое imho).


Ответить