Главная страница
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.03 c
1-22208
Nikos77
2001-12-15 18:34
2002.01.08
Подскажете как сделать форматирование


1-22191
stalker_boss
2001-12-16 02:50
2002.01.08
Звук


1-22230
Man In Red
2001-12-15 23:01
2002.01.08
Как в labele отобразить порядковый номер в RichEdite выделенного символа!


1-22202
T2
2001-12-16 07:12
2002.01.08
К вопросу о маленьких исполняемых файлах


1-22258
mashinist
2001-12-16 23:16
2002.01.08
Уравнение третьей степени.