|
Тормозит UPDATE
|
|||
---|---|---|---|
#18+
Всем, привет! Есть таблица reg.person, в ней есть поле stat integer. Кол-во записей в reg.person 5 миллионов, с пустым stat - 3 миллиона. Никаких foreign key или index на поле stat нет, как и нет триггеров на таблице. И при всем при этом запрос выполняется бесконечно Код: plsql 1.
pg_locks говорит: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
где 3308 - это как раз мой запрос explain говорит: Код: plsql 1. 2. 3. 4.
Что я уже попробовал и мне не помогло: - удалял все без исключения индексы - создавал индекс по stat - добавлял новое поле и пытался в него вставить новое значение - делал vacuum analyze - перезагружал весь сервер и службу Постгрес в отдельности - отключал обращение к Постгрес из вне В общем, люди, помогите! --- Postgres 9.5, OS Windows Server 2008R2, ОЗУ 32Гб Размер БД 5Гб ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 10:14 |
|
Тормозит UPDATE
|
|||
---|---|---|---|
#18+
BazzzВсем, привет! Есть таблица reg.person, в ней есть поле stat integer. Кол-во записей в reg.person 5 миллионов, с пустым stat - 3 миллиона. Никаких foreign key или index на поле stat нет, как и нет триггеров на таблице. И при всем при этом запрос выполняется бесконечно Код: plsql 1.
Размер БД 5Гб Бесконечно это сколько? На медленных дисках я бы ожидал время выполнения 1-2 часа (если у вас не ssd или не хороший рейд). Попробуйте во время выполнения посмотреть на дисковую нагрузку. PS: еще может быть полезно поднять max_wal_size гигов до 8 хотя бы и checkpoint_timeout До 60 минут. PPS: посмотреть в pg_stat_activity в каком состоянии запрос и не стоит ли у него waiting=true (что вряд ли судя по тому что вы в локах показали). -- Maxim Boguk www.postgresql-consulting.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 11:53 |
|
Тормозит UPDATE
|
|||
---|---|---|---|
#18+
Bazzz- создавал индекс по stat - ????? - добавлял новое поле и пытался в него вставить новое значение OS Windows Server 2008R2, ОЗУ 32Гб Размер БД 5Гб 1. а смысл создавать индекс по этому полю, если там больше половины нулл? 2. в новое поле тоже должно быстрее работать, чем бесконечность ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2017, 12:20 |
|
Тормозит UPDATE
|
|||
---|---|---|---|
#18+
BazzzВсем, привет! Есть таблица reg.person, в ней есть поле stat integer. Кол-во записей в reg.person 5 миллионов, с пустым stat - 3 миллиона. Никаких foreign key или index на поле stat нет, как и нет триггеров на таблице. И при всем при этом запрос выполняется бесконечно Код: plsql 1.
Bazzz, делайте update кусками по, скажем, 10000 записей. Код: plsql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2017, 11:06 |
|
Тормозит UPDATE
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2017, 12:38 |
|
Тормозит UPDATE
|
|||
---|---|---|---|
#18+
косякнул в коде так как на быструю руку, но смысл понятен думаю-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2017, 12:41 |
|
|
start [/forum/topic.php?fid=53&fpage=79&tid=1996718]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
others: | 20ms |
total: | 177ms |
0 / 0 |