Якщо ваш вихідний набір даних не надто великий (наприклад, може вміститися в оперативній пам'яті без виникнення помилки out of memory), є кілька рекомендацій як зробити це оптимально.

По-перше, намагайтеся використовувати запит SQL замість об'єкту Таблиця де тільки можливо. Якщо ви новачок в SQL, і вам необхідно експортувати лише одну таблицю, ваш SQL досить простий: select * from <table_name>, де <table_name> - назва таблиці, з якої експортувати дані.

По-друге, якщо вихідна база даних є віддаленою (не розміщена на вашому комп'ютері), завантажте (fetch) всі записи перед експортом. Завантажені записи розміщуються у вашій локальній оперативній пам'яті, тому процес експорту не буде контактувати з сервером і виконуватиметься значно швидше. Знову ж таки, не забувайте: ми говоримо про набори даних середнього розміру.

Експорт середніх наборів даних з GUI

  1. Відкрийте вихідну базу даних.
  2. Клацніть кнопку Створити вікно SQL. З'явиться нове вікно SQL.
  3. В редакторі SQL напишіть ваш запит SQL і клікніть кнопку Виконати запит.
  4. Клікніть кнопку Останній запис над таблицею для завантаження всіх даних.
  5. Клікніть кнопку Експорт даних.
  6. Виберіть цільовий формат експорту.
  7. Вкажіть необхідні налаштування експорту. Якщо цільовий формат - База даних, не забудьте увімкнути опцію Режим економії пам'яті та пов'язані з нею опції (якщо доступні); вкажіть коректний режим експорту.
  8. Клікніть Експортувати.

Експорт середніх наборів даних з командного рядка

  1. Збережіть ваш запит SQL до файлу.
  2. Побудуйте ваш командний рядок вручну за допомогою документації або з GUI, вибравшти меню Інструменти | Генерація командного рядка | Експорт / Імпорт даних....
  3. Створіть файл типу .bat і запишіть до нього створений командний рядок. Або використайте командний рядок в іншому середовищі за вашим вибором.

Приклад командного рядка для експорту даних з віддаленої бази PostgreSQL до локального файлу SQLite:

dbtour.exe /silent /export /ExportType=DATABASE /ExportMode=REPLACE+INSERT /CommitInterval=1000 /MemorySaving /UseSQLParameters /UseBatchMode /SrcDBInterface=fd /SrcDBKind=DSN /SrcDBDriver=POSTGRESQL /SrcDB=dwh /SrcServer=MyPgServer /SrcPort=5432 /SrcVendorLibrary=C:\Program Files (x86)\PostgreSQL\9.6\bin\libpq.dll /SrcDBUserName=servicedesk /SrcDBPassword=ant2%trH% /SrcSQLFile=c:\MyExportLib\DWH\SelectContracts.sql /TrgDBInterface=fd /TrgDBKind=FILE /TrgDBDriver=SQLITE /TrgTableName=contracts /TrgDB=C:\db\DWHCopy.db /CreateTargetContainer

В кінці розділу наведено опис всіх використаних параметрів командного рядка.

Експорт середніх наборів даних з використанням файла операцій

Рекомендується використовувати файли операцій замість класичних командних рядків із-за наступних переваг:

Перепишемо командний рядок вище до файлу операцій (зверніть увагу, що параметр /silent не повинен увійти до файлу операцій):

;Exporting from data warehouse to local SQLite db
/export
/ExportType=DATABASE
/ExportMode=REPLACE+INSERT
/CommitInterval=1000
/MemorySaving
/UseSQLParameters
/UseBatchMode
;source database:
/SrcDBInterface=fd
/SrcDBKind=DSN
/SrcDBDriver=POSTGRESQL
/SrcDB=dwh
/SrcServer=MyPgServer
/SrcPort=5432
/SrcVendorLibrary=C:\Program Files (x86)\PostgreSQL\9.6\bin\libpq.dll
/SrcDBUserName=servicedesk
/SrcDBPassword=ant2%trH%
/SrcSQLFile=c:\MyExportLib\DWH\SelectContracts.sql
;target database:
/TrgDBInterface=fd
/TrgDBKind=FILE
/TrgDBDriver=SQLITE
/TrgTableName=contracts
/TrgDB=C:\db\DWHCopy.db
/CreateTargetContainer

Збережемо файл як c:\MyExportLib\DWH\SelectContracts.txt. Тепер його можна виконати із GUI (меню База | Відкрити | Файл операцій) або з командного рядка:

dbtour.exe /silent /ActionFile=c:\MyExportLib\DWH\SelectContracts.txt

Нарешті, опишемо використані параметри командного рядка:

/silent
  Вказує програмі виконати операцію в 'тихому' режимі (без будь-яких вікон)
/export
  Вказує програмі виконати експорт даних
/ExportType=DATABASE
  Вказує цільовий формат експорту
/ExportMode=REPLACE+INSERT
  Цільову таблицю буде перестворено, якщо вона існує
/CommitInterval=1000
  Команда commit буде генеруватися після експорту кожних 1000 записів
/MemorySaving
  Експорт буде відбуватися без відкриття цільової таблиці
/UseSQLParameters
  Для пришвидшення виконання будуть використовуватися параметри SQL
/UseBatchMode
  Для пришвидшення виконання команди SQL будуть об'єднуватися в пакети; розмір кожного пакету залежить від /CommitInterval
/SrcDBInterface=fd
  Під'єднання до вихідної бази даних здійснюватиметься движком FD
/SrcDBKind=DSN
  Вид вихідної бази не файл, не тека, не рядок підключення, тому використовуємо DSN
/SrcDBDriver=POSTGRESQL
  Тип вихідної бази даних - PostgreSQL
/SrcDB=dwh
  Поточним каталогом PostgreSQL буде dwh
/SrcServer=MyPgServer
  Вказує сервер вихідної бази даних
/SrcPort=5432
  Вказує порт вихідної бази даних
/SrcVendorLibrary=C:\Program Files (x86)\PostgreSQL\9.6\bin\libpq.dll
  Вказує бібліотеку, через яку необхідно працювати з вихідною базою даних; в більшості випадків програма може відшукати її самостійно
/SrcDBUserName=servicedesk
  Під'єднання до вихідної бази даних здійснюватиметься користувачем servicedesk
/SrcDBPassword=ant2%trH%
  Вказує пароль користувача для під'єднання до вихідної бази даних
/SrcSQLFile=c:\MyExportLib\DWH\SelectContracts.sql
  Вказує шлях до файла SQL із запитом до вихідної бази даних
/TrgDBInterface=fd
  Під'єднання до цільової бази даних здійснюватиметься движком FD
/TrgDBKind=FILE
  Вид цільової бази - файл
/TrgDBDriver=SQLITE
  Тип цільової бази даних - SQLite
/TrgTableName=contracts
  Назва цільової таблиці - contracts
/TrgDB=C:\db\DWHCopy.db
  Вказує шлях до цільової бази даних
/CreateTargetContainer
  Вказує програмі створити цільовий файл бази даних, якщо він ще не існує

Див. також

 Експорт великих наборів даних