Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.10.2007, 22:06
SVP2 SVP2 вне форума
Прохожий
 
Регистрация: 03.10.2007
Адрес: Вологда
Сообщения: 2
Репутация: 10
Восклицание Query из Query в большой БД

Здравствуйте всем !!!
Подскажите пожалуйста как сделать запрос (TQuery, Paradox) из уже выполненного другим Query запроса ?
База исключительно ЛОКАЛЬНАЯ. Можно даже .Exclusive///

Пробовал TxQuery, ДИКО медленно !!!

У меня первый Query выбирает из нескольких миллионов записей всего несколько десятков тысяч (1 раз, например при нажатии кнопки). И уже из них надо делать быстрые запросы, уже по другому полю...
В базе всего 3 поля - TTime, Word, Double.
База сейчас 35 Мб, выборка первым Query - это максимум 0.5 сек, но база будет раз в 20 больше !!! Поэтому по всей БД шибко не погуляешь...
Как поступить, господа специалисты ?
Или может и не Paradox вовсе юзать надо ??? Напишите пожалуйста у кого аналогичный опыт был, посоветуйте ...

Последний раз редактировалось SVP2, 03.10.2007 в 22:58.
Ответить с цитированием
  #2  
Старый 04.10.2007, 11:59
Strike Strike вне форума
Прохожий
 
Регистрация: 04.10.2007
Сообщения: 1
Репутация: 10
По умолчанию

Алгоритм:
1) Делаем временную таблицу аналогичной структуры что результат твоего запроса
2)Делаем запрос с помещением данных в созданную таблицу

3) Делаем запросы к новой(уже заполненной) таблице

примерно так
1)create table [имя таблицы] ([имя поля] [тип], [имя поля] [тип] ...)
2) insert into [имя таблицы] select * from [твоя таблица] where [твое условие]

3) тут делаешь что угодно
Ответить с цитированием
  #3  
Старый 05.10.2007, 21:41
SVP2 SVP2 вне форума
Прохожий
 
Регистрация: 03.10.2007
Адрес: Вологда
Сообщения: 2
Репутация: 10
По умолчанию

Strike, спасибо огромное, с этим всё получилось...
Можно ещё так :
DbiMakePermanent(Query.Handle, [newtable], true);
затем открыть [newtable] в другом Query.
(Не знаю только каким способом будет быстрее...).

Кстати, пробовал базу в 150 Мб - запрос выполняется около 4 сек, что мне многовато, с учётом возможно ещё большего размера базы, да и процессор это время нагружен на 100%, что скорее всего застопорит основной ход программы !!!
Проблемка однако...
Господа специалисты, помогите пожалуйста, намекните какие пути решения видите ???
Может другую БД ? Какая БД самая быстрая, в наше-то время высоких технологий ? Самому писать СУБД мне пока слабо ещё...
Направьте на путь истинный.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:21.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025