|
|
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
Добрый день! сервер у меня не очень мощный, я бы даже сказал не очень свежий тестовый компьютер (i5-2,3GHz, RAM -8 gb, отдельный диск под БД). проблема в следующем, в таблицу с двумя колонками надо занести из файла (2Гб) информацию. в файле 150 м строк. 40м строк заносятся нормально. а после 60м все встает колом. top показывает 100% загрузку процессара процессом kworker, даже в консоле тяжело перемещатся по директориям. вставка идет через функцию, которая сначала делает селект если таких значений не находит то делается инсерт. сначало думал что баг в ядре, обновил ядро до 3.15. проблема не решилась. потом вычитал что если очень большой обьем инсерта, то переодически надо делать vacuum analyze таблицы. начал делать вакумм анализе через каждые 1м строк. но и это проблему не решило. у людей базы по 300Гб и всё работает, а тут затык на 2Гб данных. у кого какие соображения есть? в какую сторону копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 09:12 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
easaвставка идет через функциючерез хранимую? если таблица пустая, сформируй файл для copy, отфильтровав уникальные (sort -u). или создай индекс. или залей в другую таблицу и вставь только отсутствующие одним инсертом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 09:58 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
p2., в этой таблице есть индекс UNIQUE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 10:04 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
p2., функция хранимая, хотел из нее триггер сделать. но думаю что быстрее от этого работать не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 10:14 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
easa, А чем не нравится использование COPY При ваших объемах я бы через нее заливал данные в промежуточную таблицу , а далее бы уже обрабатывал логикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 10:15 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
dvim, а пример использования можно увидеть? ни разу таким способом не пользовался. а если файл на более мелкие файлы разбивать и их частями загружать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 10:17 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
Про COPY вполне понятно расписано в документации: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 10:48 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 10:50 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
Dmitry_SV, а если таблица не пустая и надо исключить в таблице наличие дублирующих записей, как тогда быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 10:57 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
easa, Вам уже предлагали: загружайте данные в отдельную временную таблицу. Затем разбирайтесь с данными уже внутри базы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 11:03 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
ursido, спасибо, направление решения данного вопроса понял. буду пробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 11:09 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
easa, Грузите в пустую временную таблицу, без индексов и триггеров. А уже потом загруженное - обрабатываете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 12:19 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
dvim, не получается у меня сделать копи в таблицу пишет следующее: ОШИБКА: для использования COPY с файлами нужно быть суперпользователем ПОДСКАЗКА: Не имея административных прав, можно использовать COPY с stdout и stdin (а также команду psql \copy). а права повышать не очень охото ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 13:25 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
easaа права повышать не очень охотои подсказками пользоваться мама не велит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 13:28 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
\copy замечательно все заносит в базу. а как добавить copy в хранимую функцию? copy заносится нормально, но не работает. а \copy не заносится, ругается на бэкслеш, может надо как то экранировать? можно ли copy через функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 09:45 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
easaа права повышать не очень охото security definer же не ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 11:19 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
итоги оптимизации такие. сделал на большую таблицу партицирование. разбил что бы в каждой таблице было не больше 10м. записей. в каждой таблице свои индексы. но появился вопрос. в документации написано что надо делать представление, сделал. но почему то и без представления делается замечательно выборка из главной таблицы. хотя в оф доке конкретно про представление. получается что оно не нужно? второй вопрос. copy замечательно работает. но когда я добавил столбы в копи для функции, она перестала работать. в логах пишет, что команда вернула 2 строки. хотя из консоли таже самая команда замечательно работает. вот пример команды copy: Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 08:49 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
Вам на этот вопрос сам форум ответ дал. Присмотритесь к подсветке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 12:11 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
Warstone, кроме опечатки в DROP TABLE ничего не увидел. покажите где ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 15:15 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
easa, В при выполнении запроса в обычном режиме в его тексте содержатся символы кавычки ('). Затем при вставке выражения в EXECUTE вся строка была заключена в те же кавычки ('). Внимание, вопрос: что произошло с оставшимися неизменными символами внутри строки? А не применить ли экранирование? (На что и намекает подсветка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 15:29 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
ursido, Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 15:50 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
tadmin, Тогда для полной картины и на пробелы нужно внимание обратить: Код: sql 1. после FROM и перед DELIMITERS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 15:56 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
кавыки пересчитайте PS was used before PostgreSQL version 7.3 and is still supported: а сейчас пот такб надо бы: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2015, 16:10 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
qwwq, с copy разобрался, спасибо. а с первым вопросом как быть? повторю свой первый вопрос: итоги оптимизации такие. сделал на большую таблицу партицирование. разбил что бы в каждой таблице было не больше 10м. записей. в каждой таблице свои индексы. но появился вопрос. в документации написано что надо делать представление, сделал. но почему то и без представления делается замечательно выборка из главной таблицы. хотя в оф доке конкретно про представление. получается что оно не нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 08:53 |
|
||
|
linux postgresql вопросы по производительности
|
|||
|---|---|---|---|
|
#18+
easaqwwq, с copy разобрался, спасибо. а с первым вопросом как быть? повторю свой первый вопрос: итоги оптимизации такие. сделал на большую таблицу партицирование. разбил что бы в каждой таблице было не больше 10м. записей. в каждой таблице свои индексы. но появился вопрос. в документации написано что надо делать представление, сделал. но почему то и без представления делается замечательно выборка из главной таблицы. хотя в оф доке конкретно про представление. получается что оно не нужно? я с голосами в голове предпочитаю не разговаривать. особо -- в чужой где говорится, в какой документации ? [тынц, +квота] , что сделал -- это код, а не брехня по поводу и без ну и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2015, 10:22 |
|
||
|
|

start [/forum/topic.php?fid=53&startmsg=39110583&tid=1997593]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
190ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 549ms |

| 0 / 0 |
