Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
ВнизСкорость Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c