|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
Добрый день. Напомните пожалуйста как заполнить данные в таблице из другой БД. Есть БД в которой храниться ФИО полностью. назовем БД - FIO.FDB и таблицу family, поля fam, im, otch. Нужно в текущую БД тоже в поля fam, im, otch прописать данные из БД fio.fdb Ключевое поле связка - app_num Где-то тут были сообщения как, но не смог найти. Помогите вспомнить. -------------------------- Firebird 3.0.1.32609; IBExpert 2017.3.12.1; Windows 10 32-bit; 4Gb RAM; SSD 512Mb + HDD 1 Tb; Настройки по умолчанию Среда разработки: Delphi XE2 + FIBPlus 7.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 11:01 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
execute statement ... on external ... Запустит клиента от имени сервера и выполнит указанный запрос к указанной БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 11:07 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 11:46 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
Gallemar, а зачем тебе для SELECT запроса автономная транзакция? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 11:58 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
Gallemar, Спасибо. В IBExpert сработало. Сейчас в программе через FIBScript попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 12:22 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrush, Интересно как-то получается. У меня сейчас, в делфи, при импорте из ДБФ по каждой строке ДБФ открывается отдельный запрос, который из другой БД вытаскивает мне ФИО полностью по app_num. Значения присваиваются параметрам и делается инсерт в текущую БД. Сделал по рекомендации Gallemar. Получилось в 2 раза дольше. Можете подсказать почему так происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 13:38 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrush, рекомендацию Gallemar пока тестирую в IBExpert ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 13:39 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrushakrush, Интересно как-то получается. У меня сейчас, в делфи, при импорте из ДБФ по каждой строке ДБФ открывается отдельный запрос, который из другой БД вытаскивает мне ФИО полностью по app_num. Значения присваиваются параметрам и делается инсерт в текущую БД. Что такое отдельный запрос? От чего отдельный? Конечно, "дельфи тут никто не знает", но с примерами кода дело пойдет быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 13:51 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
15.02.2018 13:38, akrush пишет: > У меня сейчас, в делфи, при импорте из ДБФ... а в африке негры не черного цвета. оттенки разные у них. а ДБФ не FireBird. а мягкое с тёплым сравнивать без толку. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 13:53 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrush, потому что кто-то страдает фигнёй. Если на каждую запись одного резалтсета лазить за данными в другую БД, то проще повесится. Особенно учитывая что пока что пула внешних соединений нет (в 4.0 обещают). Собственно установка соединения с БД один из самых дорогих ресурсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:04 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrushУ меня сейчас, в делфи, при импорте из ДБФ по каждой строке ДБФ открывается отдельный запрос, который из другой БД вытаскивает мне ФИО полностью по app_num. Значения присваиваются параметрам и делается инсерт в текущую БД.Сколько миллионов записей нужно за раз вытаскивать? С какой периодичностью? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:08 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
Ivan_Pisarevsky, до 200тыс. 1 раз в месяц ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:12 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
В принципе немного и не часто, но озадачиться внешними таблицами (EXTERNAL TABLE) уже можно. Если в дбф-ку сложить только текстовые поля, а в базе задекларировать внешнюю таблицу с CHAR полями, то внешняя таблица будет очень похожа на дбф-ку с откушенным заголовком. Ну а дальше одним запросом все вытаскивается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:21 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrushСейчас в программе через FIBScript попробую. интересно, зачем надо лезть через из приложения первый сервер ко второму, когда можно напрямую сделать коннект ко второй БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:22 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
kdvakrushСейчас в программе через FIBScript попробую. интересно, зачем надо лезть через из приложения первый сервер ко второму, когда можно напрямую сделать коннект ко второй БД? а как? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:28 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrush, Коннект в одну БД, выгрузить данные на клиента в память. Потом коннект в другую, загрузить данные туда. Либо коннект туда и туда сразу. Грубо говоря, экспорт/импорт через клиента. Но Дельфи не знаю. Но не вижу проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:39 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
KreatorXXI, Я так сейчас и делаю. Но думал можно ускориться 130тыс. записей сейчас импортируются с конектом в другую БД - 2минуты ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:42 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrush, ну 2 минуты это не много для того что происходит раз в месяц ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 14:44 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
KreatorXXIКоннект в одну БД, выгрузить данные на клиента в память. Потом коннект в другую, загрузить данные туда вот еще советчик... http://www.ibase.ru/impexp/ берем небуферизирующий датасет, коннект к одной БД, коннект к другой БД. И по очереди читаем 1 запись, вставляем, читаем, вставляем, .... akrushНо думал можно ускориться можно. использовать для insert препарированный запрос, и в цикле параметры передавать. Делать вставку всех 130к записей в одной транзакции. И небуферизирующий датасет, читающий данные. Ну вроде все. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 15:09 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
kdvможно. Но сложно. У него и так уже 1000 записей в секунду. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 15:12 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrush, Если в БД fio.fdb можно создавать процедуры, то рекомендую следующее: 1. Создаем в FIO.fdb такую процедуру: strtoid Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
2. В процедуре, после импорта всех данных, Получаем список всех app_num в блоб (select list(distinct app_num) from ...) и выполняем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 15:12 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
akrushKreatorXXI, Я так сейчас и делаю. Но думал можно ускориться 130тыс. записей сейчас импортируются с конектом в другую БД - 2минуты На мой взгляд многовато, мягко говоря. Я бы для начала выяснил, где тормоз - на чтении или на записи. Если на записи, то уже бы посмотрел повнимательней - блобы, индексы, может триггеры... Есть подозрение, что в лоб что по лбу, через клиента или через внешнюю БД. по скорости имею ввиду. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 15:41 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
KreatorXXI, 1000+ записей в секунду - недостаточно быстро? *Ну у вас и запросы! - сказала база и повесилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 16:21 |
|
Получить данные из другой БД в запросе
|
|||
---|---|---|---|
#18+
WildSery, Запись записи рознь, конечно. Но скорость должна быть на порядок выше. 10000+ в секунду. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2018, 16:39 |
|
|
start [/forum/topic.php?fid=40&msg=39602358&tid=1561114]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
144ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 257ms |
0 / 0 |