Вот и я решил задать вопрос про ускорение работы

C55, ШВС, TPS, W2K, файлы открываются в shared-режиме, обсчет на локальной машине, но в процессе файлы могут пользовать другие программы.
Схема базы:
Цена ->> Кросс-файл <<- Прайс <<- Производитель
Артикул ->> Кросс-файл
Необходимо посчитать, сколько Прайсов по каждой строчке Цены для конкретного Производителя.
Проблема в том, что объем базы сейчас 600Мб и будет расти. Количество записей - миллионы. Время построения - часы.
Как ускорить процесс без денормализации Кросс-файла?
Закачать Прайс в очередь? Пробовал сделать View из Кросса и Прайса и зафильтровать его - скорее ухудшение, чем ускорение. Может, я чего-то не помню и есть радикальные решения?
С такими большими объемами мне пока работать не приходилось, закачивать в SQL пока не получается по ТЗ.
С уважением,
В.Смелик
(Добавление)
Судя по структуре можно сделать промежуточный файл (динамически обновляемый в процессе работы) и свести это к такому
ЦенаПрайс (со значением цены прайса и идентификатором строчки файлов цены и прайса) <<-Производитель
Да, это потребует КОЛОССАЛЬНЫХ счетных ресурсов для РАЗОВОЙ генерации на уже существующей базе и будет несколько замедлять ввод и изменение. Но в результате отчет будет практически мгновенным.
Igor Gubin <igor@quantor.com>
(Добавление)
Здравствуйте, Владимир!
Хотя я не совсем "въехал" в описанную схему (в частности, что есть цена и зачем оно так), пару мыслей возникло.
1. Можно попробовать в старшие разряды ID прайса (или специального поля) прицепить ID производителя. Селектор по ключу ID прайса+Цена, в очередь и сортировка по цене.
2. Технически если не SQL, то хорошее решение для такой базы - терминальный сервер.
С уважением,
Вячеслав Черников Support@finsoft.ryazan.ru
Написал: ClaList(2)