Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
COPY
|
|||
|---|---|---|---|
|
#18+
Возрастет ли производительность и на сколько при замене INSERT-ов, запускаемых в цикле (за один такт вставляется одна запись), на COPY (тоже запускаемых в цикле)? Цикл примерно несколько тысяч проходов. Сейчас цикл заключен в одну транзакция BEGIN-цикл-COMMIT. Программа написана на Си с использованием библиотеки libpq. Какие проблемы могут возникнуть при этой замене? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:34 |
|
||
|
COPY
|
|||
|---|---|---|---|
|
#18+
posttВозрастет ли производительность и на сколько при замене INSERT-ов, запускаемых в цикле (за один такт вставляется одна запись), на COPY (тоже запускаемых в цикле)? Цикл примерно несколько тысяч проходов. Сейчас цикл заключен в одну транзакция BEGIN-цикл-COMMIT. Программа написана на Си с использованием библиотеки libpq. Какие проблемы могут возникнуть при этой замене? COPY в каждой итерации цикла по одной записи? Немного не для того он думан. Вот если вы файл в несколько тысяч записей за раз в COPY прогоните, вот тогда производительность повысится в разы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:42 |
|
||
|
COPY
|
|||
|---|---|---|---|
|
#18+
Буду благодарен за простой пример использования команды COPY в C-программе с использованием библиотеки libpq. Нормальных примеров не нашел, только описание функций в доке на англ. Данные, которые нужно вставить, находятся в файле. И еще будут ли работать при этом RULE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 16:49 |
|
||
|
COPY
|
|||
|---|---|---|---|
|
#18+
Стыдись, Белое Перо. "COPY FROM will invoke any triggers and check constraints on the destination table. However, it will not invoke rules." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 17:06 |
|
||
|
COPY
|
|||
|---|---|---|---|
|
#18+
postuserБуду благодарен за простой пример использования команды COPY в C-программе с использованием библиотеки libpq. Нормальных примеров не нашел, только описание функций в доке на англ. Данные, которые нужно вставить, находятся в файле. И еще будут ли работать при этом RULE? Пример? Но вызов COPY ничем не отличается от вызова инсерта. Обе команды обрабатывает сервер. Единственное, загружаемый файл должен быть на сервере, а не на клиентской машине (то есть быть доступен серверному процессу pg). Вот небольшой пример (пишу на FreePascalCompiler) с использованием libpq: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 17:48 |
|
||
|
COPY
|
|||
|---|---|---|---|
|
#18+
Thamerlan ... Единственное, загружаемый файл должен быть на сервере, а не на клиентской машине (то есть быть доступен серверному процессу pg). ... 29.8.1. Functions for Sending COPY Data говорит что необязательно, если использовать COPY FROM STDIN :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 18:32 |
|
||
|
COPY
|
|||
|---|---|---|---|
|
#18+
Thamerlan postuserБуду благодарен за простой пример использования команды COPY в C-программе с использованием библиотеки libpq. Нормальных примеров не нашел, только описание функций в доке на англ. Данные, которые нужно вставить, находятся в файле. И еще будут ли работать при этом RULE? Пример? Но вызов COPY ничем не отличается от вызова инсерта. Обе команды обрабатывает сервер. Единственное, загружаемый файл должен быть на сервере, а не на клиентской машине (то есть быть доступен серверному процессу pg). Вот небольшой пример (пишу на FreePascalCompiler) с использованием libpq: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Я ,наверно, не совсем понятно написал. Имелось ввиду, что в файле несовсем готовые данные (как формирует pg_dump). Данные из файла для начала нужно определенным образом обработать (добавить несколько полей, исключить ненужные строки) и только потом записать в БД с помощью COPY. Читал раздел 29.8. Functions Associated with the COPY Command, но там нет примеров использования. Нужно именно что-то типа чтения из stdin. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 19:16 |
|
||
|
COPY
|
|||
|---|---|---|---|
|
#18+
posttЯ ,наверно, не совсем понятно написал. Имелось ввиду, что в файле несовсем готовые данные (как формирует pg_dump). Данные из файла для начала нужно определенным образом обработать (добавить несколько полей, исключить ненужные строки) и только потом записать в БД с помощью COPY. Читал раздел 29.8. Functions Associated with the COPY Command, но там нет примеров использования. Нужно именно что-то типа чтения из stdin. По поводу копирования из stdin'а из клиентского приложения не подскажу, не сталкивался. Но если не всё так прозрачно, то оно вам надо? Чем вас не устраивает текущая реализация? Можно, конечно, через COPY загнать в темповую таблицу как есть, типа: (id SERIAL, full_line TEXT). А потом попробовать через INSERT INTO ... SELECT FROM ... Но тут надо знать более детально, что вы там обрабатываете. Можно немного оптимизировать через PREPARE + в цикле EXECUTE: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 00:48 |
|
||
|
COPY
|
|||
|---|---|---|---|
|
#18+
Есть таблица: Код: plaintext 1. 2. 3. 4. 5. Программа: Код: plaintext 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. Записи не вставляются, где тут может быть ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 06:49 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34642681&tid=2005304]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 305ms |

| 0 / 0 |
