Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / COPY via libpq / 7 сообщений из 7, страница 1 из 1
24.08.2005, 14:17
    #33231839
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY via libpq
Добрый день!

Не поделится ли кто-нибудь своими
или чужими примерами использования COPY
и/или соображениями по этому поводу?

Предпочтительно в варианте BINARY. Предпочтительно из libpq.

Хочется глянуть на что-нибудь готовое, ибо совет из документации

==
To determine the appropriate binary format for the actual tuple data you should consult the PostgreSQL source, in particular the *send and *recv functions for each column's data type (typically these functions are found in the src/backend/utils/adt/ directory of the source distribution).
==

навевает мысли о более полезных способых траты времени, один из
которых использовать text format.

Расскажите, кстати, имеет ли смысл при использовании COPY удалять индексы перед массовой загрузкой данных и пересоздавать их после нее?
...
Рейтинг: 0 / 0
24.08.2005, 14:51
    #33231953
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY via libpq
на парся.. делай в текстовом формате.. от бинарного формата скорости много не выиграеш.. а гемору с написанием кода приобретеш.

я перед copy делаю vacuum analyze , помогает в разы ускорить его , но уменя "хитрый" COPY , на таблицу с тригером BEFORE INSERT аля IF update where a=new.a THEN return NULL ELSE return new; табличка достаточна большая и данных приходит много и часто

по поводу перестройки индексов точно сказать не могу никогда незаморачивался.. он думаю что перестраивать их стоит вместе с вакуумом ночю... все конечто зависить от специфика конкретной системы.
...
Рейтинг: 0 / 0
24.08.2005, 16:51
    #33232355
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY via libpq
ilejnДобрый день!
Расскажите, кстати, имеет ли смысл при использовании COPY удалять индексы перед массовой загрузкой данных и пересоздавать их после нее?

В большинстве БД это имеет смысл делать, т к быстрее работает загрузка без индексов и пересоздание их, чем загрузка в таблицу с индексами
...
Рейтинг: 0 / 0
24.08.2005, 17:06
    #33232416
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY via libpq
landy[quot ilejn]
В большинстве БД это имеет смысл делать, т к быстрее работает загрузка без индексов и пересоздание их, чем загрузка в таблицу с индексами
Понятное дело.

Я просто думал, что COPY, которая специально предназначена для массовых операций, может обладать каким-то собственным интеллектом на эту тему.

Документация в явном виде ничего об этом не говорит, так что интеллект, вероятно, отсутствует ;(
...
Рейтинг: 0 / 0
26.08.2005, 10:48
    #33235554
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY via libpq
landy

ты забываеш что полная перестройка индекса достаточно тяжелая операция ... и при интенсивном COPY прирост скорости за счет отсуствия индексов скорее всего померкнет из за полной перестройки индекса что что вобщем может быть даже дольше самого копу
...
Рейтинг: 0 / 0
26.08.2005, 22:08
    #33237109
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY via libpq
Я не забываю - просто жизнь показывает, что так быстрее , во всяком случае на тех БД с которыми я работал и работаю. Еще лучше - если грузить данные отсортированные по значению ключа, а потом создавать индекс. В таком случае создание индекса тоже должно быть более быстрым, чем создание индекса по только что загруженной таблице с разрозненными данными.
Запись в таблицу Postgres и , соответственно, поиск места для вставки ключа в индекс(а если их несколько?) может очень сильно затормозить весь процесс. Кроме того для индекса будет использоваться место в кэше. А это тоже при массовых операциях загрузки не очень выгодно.
Просто попробуй
...
Рейтинг: 0 / 0
31.08.2005, 09:44
    #33242548
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
COPY via libpq
на парся.. делай в текстовом формате.. от бинарного формата скорости много не выиграеш.. а гемору с написанием кода приобретеш.


Разница в скорости между бинарным и текстовым форматом приблизительно в десять раз.

Так что еще раз с надеждой взываю к общественности, имеющей опыт формирования данных для бинарной загрузки, или знающей какой-нибудь пример по этому поводу.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / COPY via libpq / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]