О том как КАРДИНАЛЬНО УСКОРИТЬ NEWS, NERASE



Posted by Рустем Мухаметшин on September 29, 1999 at 13:29:52:

Ну что ж палемика о быстрых фактах еще не закончена. Я как человек считающий наилучшим критерием истинности подтверждение практикой не вижу фактов в пользу необходимости ускорения механизма фактов, скорее наооборот.
Предложение писать неоптимизированный код работы с механизмом фактов (т.е. без REWIND-ов, с многократным поиском в телах циклов и т.д.) считаю абсолютно неправильным. Нужно всегда делать грамотный алгоритм. К тому же польза от индексации проявляется далеко не всегда. И как это ДЕЙСТВИТЕЛЬНО ПОДТВЕРЖДАЕТСЯ НЕПОСРЕДСТВЕННОЙ ПРАКТИКОЙ случаи "скученных фактов" проявляются тут и там (сообщения Сергея Васеленко и вашего покорного слуги 1593, 1600) А в этом случае "быстрота" ровным счетом ничего не дает ибо в этом случае обычный поиск и так выжимает все что можно выжать из последовательного устройства хранения будь оно с индексом или без.

Но сейчас не об этом. Предлагаю еще одну оптимизацию класса REWIND. Т.е. ДЕШЕВО и СЕРДИТО. Посмотрите на NEWS и NERASE. Они ищут от "точки вызова" и до самого начала времен. Задумаемся о их области применимости - в основном в Ф/К. Я, обычно, непользуюсь этим механизмом в виду медленности и неоптимальности (в особенности при поиске несуществующей записи), а использую э/п (не от хорошей жизни, иногда это приводит к дублированию информации в фактах и э/п).
Так вот, нужно просто создать индекс последнего факта для всех прототипов из PROTO. Только по первому слову. И тогда, при пересчете сервер будет запоминать самое последнее появление любого из прототипов. А значит, NEWS ДОЛЖЕН СРАБОТАТЬ ПРОСТО МГНОВЕННО (в ф/к, разумеется при поиске от текуще даты операции, что и требуется обычно)!!!!!!


Пpишедшие ответы: