|
|
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, прошу помочь мне с советом. Необходимо выгрузить данные из базы на firebird, записей много, около 15 миллионов. В файл типа .txt, с табуляцией. Попробовала написать экзешник, который вставлял бы по строке в файл. Работает, но долго. Подскажите пожалуйста решение! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 15:47 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_зая, Взять IBE - он уже умеет экспорт данных. В плане программирования - накапливать буфер в памяти и сбрасывать на диск не по 1 строке, а порциями по 10-20 тыс строк например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 15:51 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_зая, Ну а как долго? Сколько? Длина записи какая? Может чудес не бывает. 15 млн x 100 байт = ~1.5Гиг. Какое время Вас бы устроило? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 15:57 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
KreatorXXI, ну вот один файл сформировался за 3 часа , примерно 4 мб. Это я разделила по месяцам и по одному признаку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:05 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
DarkMaster, умеет, но с моими объемами не справляется. Я пробовала, он выгружает сначала все, а только потом начинает экспорт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:06 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_зая, Ну тогда пиши свой велосипед, я уже сказал как. Советую использовать кстати не Query, а что-то вроде Cursor`а (однонаправленный, не имеет внутреннего буфера для данных) - но это уже зависит от библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:18 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_заяKreatorXXI, ну вот один файл сформировался за 3 часа , примерно 4 мб. Это я разделила по месяцам и по одному признаку 4 мб - это не 15 млн записей. Но по любому многовато. Не знаю на чём Вы писали, но сброс в текстовый файл должен быть быстр. Сегодня вот здесь обсуждают - 21737021 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:19 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_зая, Так все равно так или иначе все это придется вытягивать по сети. Ваша пробная программа экспорта на чем написана? Покажите примерный алгоритм, подумаем над его оптимизацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:20 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
DarkMaster, и писать данные в Stream. А в Query однонаправленнность и так можно включить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:21 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисDarkMaster, и писать данные в Stream. А в Query однонаправленнность и так можно включить Ну я привык за много лет к IBO - там есть специализированный TIB_Cursor для таких целей. Query (даже однонаправленная) - это память под зафетченные данные - доп. тормоза по выделению памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:24 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
DarkMaster, нет в однонаправленных Query предыдущие фетчи не буферизированы, иначе какой в смысл в однонаправленности. Разве что буфер в SQLDA, но он один на все записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:27 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Vlad F, Код: pascal 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. 41. 42. 43. 44. 45. 46. 47. 48. 49. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:40 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_заяDarkMaster, умеет, но с моими объемами не справляется. Я пробовала, он выгружает сначала все, а только потом начинает экспорт Умеет и справляется. http://www.ibexpert.net/ibe/index.php?n=Doc.ScriptExecutive#Output ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:51 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_зая, запрос — источник данных должен быть один. Пиши в FileStream, не надо переоткрывать файл на каждой иттерации. Для большего быстродействия у Query должно быть выставлено Uniderictional := true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:54 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Не мудрено, что оно тупит, за ради каждой строчки открывать-закрывать файл, препарировать запрос на каждый чих. Зачем внутри цикла переопределять запрос? Ужас-ужас, короче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:56 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_зая, срочно читаем http://www.ibase.ru/ibx/ TIBOutputDelimitedFile обращаю внимание, что запрос должен выполняться в IBSQL, а не в IBQuery или чем-то еще. а 4мб выгрузки у вас за 3 часа - потому что вы дрюкаете сервер запросом на выгрузку каждой записи. Код: pascal 1. 2. 3. 4. 5. прямо хоть в учебники, "как не надо делать". Должен быть ОДИН запрос, выдающий все записи, которые надо выгрузить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 16:58 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
ЭТО с ЭТИМ, в форум по Делфи! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 17:06 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_заяПодскажите пожалуйста решение! FBExport. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 17:11 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Дело в том, что есть две базы, которые необходимо связать между собой уидом, его я как раз вытаскиваю запросом для каждой записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 17:42 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисDarkMaster, нет в однонаправленных Query предыдущие фетчи не буферизированы, иначе какой в смысл в однонаправленности. Разве что буфер в SQLDA, но он один на все записи Ну, когда-то и я наверное это знал, теперь забыл :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 17:45 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_заяДело в том, что есть две базы, которые необходимо связать между собойШтуковина, которая вам нужна называется репликатор. Будет гораздо дешевле его купить, учитывая насколько "детские" грабли разложены в вашем коде, отлаживать будете долго и мучительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 17:50 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_зая, Вот это я не до конца понял, и поэтому прежде чем давать советы по оптимизации приведенного кода, хочу уточнить, как потом предполагается использовать этот текстовый файл с разделителями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 19:37 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
Кареглазая_заяДело в том, что есть две базы, которые необходимо связать между собой уидом, его я как раз вытаскиваю запросом для каждой записи Вот про это был вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 19:38 |
|
||
|
Выгрузка из базы
|
|||
|---|---|---|---|
|
#18+
МимопроходящийЭТО с ЭТИМ, в форум по Делфи! Не спугни Заю, противный. Вишь, как все мужики оживились.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2018, 19:46 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39735208&tid=2040100]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
139ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 444ms |

| 0 / 0 |
