Запрос на чтение запроса в файле - PullRequest
0 голосов
/ 02 октября 2010

У меня огромные запросы на создание таблиц (100 ГБ), которые я хотел бы отправить через ODBC в мою базу данных (в данном случае Postgre). Проблема состоит в том, что эти запросы построены из внешней программы, поэтому я хотел бы избежать загрузки каждого запроса в памяти для отправки его ODBC в базу данных. Я бы предпочел указать БД в (маленьком) запросе выполнить этот огромный запрос напрямую.

Это может быть легко с psql, но я бы хотел сделать это через odbc. Возможно ли это?

1 Ответ

1 голос
/ 03 октября 2010

Если вы имеете в виду массовую загрузку данных, PostgreSQL имеет команду COPY - он может напрямую читать файл данных на сервере, но не может обрабатывать обычные запросы SQL - он может загружать данные из файла в формате CSV или в похожем формате (которыйнастроить как параметры COPY).

Если вы загружаете таблицу с нуля, хорошие оптимизации имеют простую таблицу (без PK, FK, ограничений, индексов) и выполняют COPY в транзакции вместе с таблицей TRUNCATE, например:

НАЧАЛО;TRUNCATE ....;КОПИЯ ...;COMMIT;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...