|
|
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
В 2.5 появились запросы к внешним источникам данных EXECUTE STATEMENT … ON EXTERNAL Вещь интересная, а кому-то даже полезная. Однако получить набор данных с левой БД – это одно, а вот использовать его, например в соединении с выборками родной базы, – совсем другое. Как я понимаю, сейчас это можно сделать лишь посредством явных курсоров. Причем если условия соединение и фильтрации сложнее палки и веревки, то придется поиметь много-много кода. Так вот, на сытый желудок подумалось, как ещё докрутить синтаксис ES в тройке, чтобы внешние источники данных стали еще более гладкими и шелковистыми. Объяснять лень, лучше пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В общем смысл понятен, полагаю: загонять вывод ES в CTE. Причем FOR перед ES, а также INTO после ES тут не к чему, ибо весь вывод засасывает в себя CTE, и поля уже объявлены в ней после имени. Что скажете? Лисапед? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 14:00:33 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
джойнить EDS без поддержки оптимизатора - бестолковое занятие, IMHO, независимо от синтаксиса. Надо делать нормально оптимизируемые гетерогенные запросы. Но это не для 3.0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 14:09:49 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
dimitr, т.к. синтаксис не влияет на поддержку или неподдержку оптимизации, то почему бы не реализовать на скорую руку тупые natural-соединения (как вариант, по предложенному синтаксису или как-то иначе), а когда дойдут руки - не меняя синтаксиса добавить оптимимзацию? По-моему, возможность - первично, скорость реализации - вторично. Не всем же миллиониками манипулировать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 14:15:18 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
сделать в процедуре выборки ES и джойнить уже с процедурой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 14:21:26 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
Идеи запихнуть EXEC BLOCK (а теперь и EXEC STMT) в CTE уже витали. Несмотря на кажущуюся простоту и элегантность синтаксиса это не так просто сделать в самом движке. Т.е. "на скорую руку" - это фантазия :) Ну и эффективность выполнения таких запросов будет не на высоте. Кому сильно нужно, может, не ожидая FB 3 (или FB 33), уже сейчас самостоятельно заливать такие блоки в GTT и джойнить их вдоль и поперёк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 14:22:51 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
hvladэлегантность синтаксиса никогда не понимал этой "элегантности" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 14:26:22 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
dimitrhvladэлегантность синтаксиса никогда не понимал этой "элегантности" :-)кажущаяся :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 14:32:46 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
Я правильно понял, что count и другие агрегаты считает внешняя СУБД? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2010, 03:25:20 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
Да. Но некрофилить ради этого было необязательно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2010, 03:42:02 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
...«В 2.5 появились запросы к внешним источникам данных EXECUTE STATEMENT … ON EXTERNAL Вещь интересная, а кому-то даже полезная. Однако получить набор данных с левой БД – это одно, а вот использовать его, например в соединении с выборками родной базы, – совсем другое. Как я понимаю, сейчас это можно сделать лишь посредством явных курсоров. Причем если условия соединение и фильтрации сложнее палки и веревки, то придется поиметь много-много кода».... Я делаю иначе: Просто и быстро. а) Создаем системный DSN для каждой БД Firebird в администраторе источников данных ODBC . б) Далее в MS Access создаем связанные таблицы из DSN А затем строим выборки и прочие весЧи со всеми БД в савокупности или врозь.... DataPump не рулит! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 20:04:45 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
PisarLenovПросто и быстро. Ага, для пары таблиц с десятком записей в каждой. Акцесс вроде как не умеет пропихивать условия в связанные таблицы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2013, 20:37:59 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
PisarLenov, некрофил? К тому же, BDE давным давно умеет это делать, не говоря о том, что он не развивается уже 11 лет. Гетерогенные запросы только с одной стороны хорошо. С другой - они выкачивают все данные на клиента. Поэтому рулит как раз перекачка части данных между БД через on external, и выполнение запросов уже в конкретной БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 00:00:24 |
|
||
|
Непричесанные мысли по синтакссу кросс-ДБ запросов
|
|||
|---|---|---|---|
|
#18+
свои 5 копеек недавно пришлось делать джойны из IB56 и FB25 через Execute Statement правда без курсоров, и на разных машинах убийственно медленно нашел выход - TxQuery дешево, быстро и дружелюбно, хотя нет некоторых элементов конструкций (напр EXISTS) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2013, 11:19:07 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=36330843&tid=1564126]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 221ms |
| total: | 394ms |

| 0 / 0 |
