Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.08;
Скачать: CL | DM;

Вниз

Скорость   Найти похожие ветки 

 
szap   (2001-12-05 11:53) [0]

Пишу примитивную програмку:
- связываю две (три, четыре) исходные таблицы (~300МВ - каждая)
- устанавливаю фильтры для них
- создаю новую таблицу для результатов (пару десятков полей)
- копирую While not Eof
Хочу обойтись без BDE
Использую Apollo SDE
Проблема низкая скорость (при двух таблицах ~3часа)
Может кто посоветует...


 
asafr   (2001-12-05 12:52) [1]

Необходимо оптимизировать запрос. Перейти с TTable на TQuery и постараться обойтись без результирующей таблицы.


 
szap   (2001-12-05 13:08) [2]

С Apollo SQL разобраться не смог, а результирующая таблица необходима.


 
asafr   (2001-12-05 13:14) [3]

Тогда первых 2 пункта. К сожалению, посоветовать по Apollo SQL ничего не могу, ибо не знаю...


 
Dick Gonsales   (2001-12-05 14:51) [4]

Я так понимаю ты связываешь таблицы по каким-то полям,
дальше вешаешь фильтр то есть это все можно написать в виде
SELECT <fields> FROM <table>
WHERE <твоя связь> AND <твои фильтры>
если так, то
используй для выборки TQuery,
не креатив таблицу и не используй While not eof,
для таких операций есть BatchMove который тебе
результат TQuery запихает в таблицу
формат которой и имя скажешь сам.
Это будет быстрее, и я надеюсь индексы у тебя по связующим полям есть?

А вобщето это гораздо проще сделать в FoxPro 2.0 (2 Mb) и.т.д (судя по заголовку dBase, FoxPro)
Делаешь индексы, создаешь запрос с сохранением результата в файл,
сохраняешь текст запроса и все. Открыл Fox, открыл Query, Execute и все OK


 
szap   (2001-12-05 19:17) [5]

Спасибо, но хочу автоматизировать.
Для TQuery нужен BDE, а он мне ненужен.
BatchMove - в Apollo отсутствует.
Какие компоненты посоветуете использовать для решения этой задачки (НЕ БДЕ, максимум ДЛЛ и чтоб под НТ пахало)
СПАСИБО


 
szap   (2001-12-05 19:18) [6]

И скорость,скорость,скорость....


 
Slava   (2001-12-06 06:18) [7]

> szap

Надо разобраться с Apollo SQL. Если не получится, можно попробовать
Advantage ( http://advantagedatabase.com). Но, если нет индексов, то
тормоза через ихний SQL будут тоже нехилые.

Все же на мой взгляд лучше сделать через фокс, как советовал Dick Gonsales.
И автоматизировать нет проблем. Если ты из своей программы вычисляешь
какие-нибудь значения для использования в этой выборке, то или запиши их в
файл или передавай в командной строке фоксовой программе. А уж она или
читает из файла или из командной строки эти параметры и выполняет запрос
сразу в результирующую таблицу.



Страницы: 1 вся ветка

Текущий архив: 2002.01.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
7-22430
AlexK
2001-09-21 12:28
2002.01.08
блокировка клавиатуры


3-21963
szap
2001-12-05 11:53
2002.01.08
Скорость


4-22468
Zabl
2001-11-02 11:56
2002.01.08
Утечка памяти


7-22448
Станислав
2001-09-11 15:24
2002.01.08
Данные на дискете


3-21907
RDA
2001-12-01 12:48
2002.01.08
Delphi и MySql