Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
korvin ©   (2005-01-29 12:50) [0]

Можно ли использовать в одном запросе поля таблиц из разных баз данных? Есть поля по которым можно было бы установить связь и конечно нет проблем если таблицы в одной базе, а как поступить в данном случае?
Если есть возможность, приведите пожалуйста пример в общем виде.


 
Alexandr ©   (2005-01-29 12:58) [1]

нельзя.
Только собирать результирующую таблицу на клиенте.
Вот в BDE есть возможности для этого.
Но BDE в данном случае естественно убдет на клиентя тянуть таблицы целиком, даже если реально надо всего пару записей.
Аналогично делают например Access или даже MSSQL.


 
korvin ©   (2005-01-29 13:32) [2]

Спасибо за ответ, хоть он меня и не радует.
Буду создавать сборную как советуете.


 
Alexandr ©   (2005-01-29 13:56) [3]

это самый правильный вариант, раз уж действительно так надо.
И транзакциями управлять сможешь, и на сервер посылать сразу правильный запрос смоше, чтоб не тянуть все таблицы.


 
Anatoly Podgoretsky ©   (2005-01-29 14:16) [4]

Alexandr ©   (29.01.05 12:58) [1]
Сам придумал "Но BDE в данном случае естественно убдет на клиентя тянуть таблицы целиком"


 
Alexandr ©   (2005-01-29 14:21) [5]

а разве не так?
хочется посмотреть, как BDE раскрутит сложный гетерогенный  запрос в 2 запроса для разных серверов.


 
Anatoly Podgoretsky ©   (2005-01-29 14:52) [6]

Очень просто раскрутит, например select :alias1:Tbl1.Fld1 AS T1, :alias2:Tbl2.Fld1 AS T2 where T1.Fld1=T2.Fld1


 
Alexandr ©   (2005-01-29 15:00) [7]


> alias1:Tbl1.Fld1 AS T1, :alias2:Tbl2.Fld1 AS T2 where T1.Fld1=T2.Fld1


не... мы как будто про разное говорим...
у него же базы клиент-серверные и можно ожидать выполнеия запроса в каждую базу и локального объединения результата запросов. Однако BDE не будет использовать сервер для такого объединения, а объединит своим движком, а свой движок у него только с файловыми базами работает.
Значит он вытянет обе таблицы целиком и сам уже потом безовсяких индексов будет объединять их своим движком.

А чтобы как-то распараллелить запрос по максимуму на серверы и потом только собрать из 2 ограниченных выборок результат, это надо очень серьезную логику. И в BDE оно не укладывается.


 
Anatoly Podgoretsky ©   (2005-01-29 15:11) [8]

Вот именно запрос в каждую базу, а не перекачивание всей таблицы, как ты утверждал. На каждую T1 будут вытянута только те записи, которые нужны, с тем же ИД, а не вся таблица. Точно также будет и для одной базы. И насчет сервера обязательно будет его использовать, не умеет БДЕ работать напряму с файлами Интербейс, да его никто и не пустить к этим файлам. Ты не путай с файл серверными базами. Примерно это будет выглядеть так, для второй таблицы будет выполнен такой запрос SELECT FROM T2 WHERE fLD1 = значение из T1, никаких всех данных не потянет. Объединение конечно будет произведено локально.


 
Alexandr ©   (2005-01-29 15:20) [9]

хм... ну мож такой запрос развернет еще.
Но если чуть посложнее?


 
Rule ©   (2005-01-29 15:24) [10]

по этому поводу хорошая статья есть

http://ibase.ru/devinfo/bde.htm


 
Alexandr ©   (2005-01-29 15:31) [11]

точно. Помню же, где читал на этот счет.
А вывод тут  такой, что как в конкретном случае BDE выполнит запрос известно только BDE. И далеко не всегда это будет более-менее оптимально.
А локальный SQL у него достаточно примитивен.
Поэтому уж проще самому формировать.


 
Rule ©   (2005-01-29 15:36) [12]

Alexandr ©   (29.01.05 15:31) [11]
именно так, поэтому в данном случае оптимальный вариант - это программными методаим обходить эту проблемму, а вообще не должно возникать таких ситуаций, а если возникла, значит что-то неправильно спроектировано изначально ... ИМХО конечно ...



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

Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.031 c
1-1108462027
lehich
2005-02-15 13:07
2005.02.27
Label ??? выделение текста...


6-1103390843
frEE)stylEr
2004-12-18 20:27
2005.02.27
ПОМОГИТЕ с получением e-mail !!!!


3-1106800214
UVV
2005-01-27 07:30
2005.02.27
Запрос с параметром timestamp


14-1107504549
skiFF
2005-02-04 11:09
2005.02.27
два будоражащие меня сейчас пробела в моих знаниях


14-1107352506
Shuric
2005-02-02 16:55
2005.02.27
Уважаемый Romkin!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский