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

Вниз

"соединение" нескольких баз...   Найти похожие ветки 

 
Bes ©   (2004-05-20 02:37) [0]

ситуация такова... есть несколько (порядка 30) одинаковых по архитектуре баз данных (Ms Access), т.е. таблицы, столбци и т.д. все одинаковое только вот данные разные.

так вот, нужно выполнить SQL запрос не на одну бд а на все сразу...

я делал так, создавал 30 TAdoConnection, засовывал каждый из 30 в отдельный поток и подругржал все это через recordset в "виртуальную" таблицу (т.е. в оперативку). потом чисто механически дальше обрабатывал...
способ весьма надуманный, сырой и не красивый...темболее очень медленных, т.к. мне приходится в каждой базе проходить все записи.

вопрос: что можно лучше придумать или как увеличить скорость моего решения?


 
sniknik ©   (2004-05-20 08:15) [1]

попробуй
SELECT * FROM Table1
UNION ALL
SELECT * FROM Table1 IN "D:\Base2.MDB"
подключение естественно к D:\Base1.MDB, должно быть.
хотя, так можно только с одной базой, 30 явный перебор (но зато можно до 15 количество потоков сократить, далжно быть ускорение). и можно сделать "рабочую" 31 базу, и загонять в нее во временную таблицу обьеденение из всех баз. (раз оно у тебя а памяти помещается то переполнения базы не будет, видать разбили не и соображений нехватки места в базе)
тогда делаеш 30 раз
INSERT INTO TmpTable SELECT * FROM Table1 IN "D:\Base_N.MDB"
а после простой селект. (почти уверен будет быстрее чем твоя реализация)



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

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

Наверх




Память: 0.47 MB
Время: 0.024 c
3-1084960613
M126
2004-05-19 13:56
2004.06.13
Выбор из текстового файла


14-1085659720
Вячеслав
2004-05-27 16:08
2004.06.13
Delphi+Autocad


1-1086013960
kombat
2004-05-31 18:32
2004.06.13
Что лучше использовать в конструкторе - Variant или array of var?


4-1082820190
Андрей2
2004-04-24 19:23
2004.06.13
Сервисы и Windows XP


6-1082541457
dreams
2004-04-21 13:57
2004.06.13
Как работать с ClinetSocket через прокси ?