Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-22225
Reyst
2001-12-16 15:56
2002.01.08
Не могу сохранить ресурс в файл


1-22137
AlexandrH_
2001-12-20 08:06
2002.01.08
Как в StringGride управлять фокусом.


4-22511
Plug&Play
2001-10-29 22:23
2002.01.08
А как программно выключить компьютер?


14-22336
Иван Шихалев
2001-11-02 23:31
2002.01.08
Золотой банан


4-22475
Di_wind
2001-11-02 16:08
2002.01.08
Поиск





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский