powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как оптимально (update) создать массивы целых?
17 сообщений из 17, страница 1 из 1
как оптимально (update) создать массивы целых?
    #34890255
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблица, в ней 7 млн записей, в поле строки типа '11 22 33 77' .
Я создал поле int[] и пытаюсь двинуть данные из строки в массив

update xprop set xaccess_array=string_to_array(xaccess,' ')::int[];

Долго работает....
Можно ли улучшить производительность?
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34890335
сансаныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где узкое место: в вычислении string_to_array (CPU) или в записи данных (диск)?
Т.е. тормозит
Код: plaintext
1.
  select string_to_array(xaccess,' ')::int[] from xprop 
или
Код: plaintext
1.
  update xprop set xaccess_array='{11,22,...}'::int[]
?
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34890398
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сансанычГде узкое место: в вычислении string_to_array (CPU) или в записи данных (диск)?
Т.е. тормозит
Код: plaintext
1.
  select string_to_array(xaccess,' ')::int[] from xprop 
или
Код: plaintext
1.
  update xprop set xaccess_array='{11,22,...}'::int[]
?

как определить? Я пустил апдейт, он "торчит" уже 3 часа...
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34890667
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhДолго работает....
Можно ли улучшить производительность?удалить констрейнты, индексы,..

использовать COPY.
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34890704
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBat WinnipuhДолго работает....
Можно ли улучшить производительность?удалить констрейнты, индексы,..

использовать COPY.

индексы, триггеры удалил, но как можно COPY использовать в данном случае? может это выход..
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34890791
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhкак можно COPY использовать в данном случае?copy ( select string_to_array(xaccess,' ')::int[] as xaccess_array, xaccess,.. from xprop ) to ...;
truncate xprop;
copy xprop ( xaccess_array, xaccess,.. ) from ...;
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34890927
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBat Winnipuhкак можно COPY использовать в данном случае?copy ( select string_to_array(xaccess,' ')::int[] as xaccess_array, xaccess,.. from xprop ) to ...;
truncate xprop;
copy xprop ( xaccess_array, xaccess,.. ) from ...;

т.е. создать новую таблицу, перегнать в нее существующую, потом обратно?
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34890967
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhт.е. создать новую таблицу, перегнать в нее существующую, потом обратно?не таблицу, а файл

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
COPY tablename [ ( column [, ...] ) ]
    FROM  { 'filename' | STDIN } 
    [ [ WITH ] 
          [ BINARY ]
          [ OIDS ]
          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] 'quote' ] 
                [ ESCAPE [ AS ] 'escape' ]
                [ FORCE NOT NULL column [, ...] ]

COPY { tablename [ ( column [, ...] ) ] | ( query ) }
    TO  { 'filename' | STDOUT } 
    [ [ WITH ] 
          [ BINARY ]
          [ HEADER ]
          [ OIDS ]
          [ DELIMITER [ AS ] 'delimiter' ]
          [ NULL [ AS ] 'null string' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] 'quote' ] 
                [ ESCAPE [ AS ] 'escape' ]
                [ FORCE QUOTE column [, ...] ]
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34893226
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выгрузка в файл - 20-30 минут
загрузка в таблицу из файла - идет уже со вчерашних 15:00 .... что за ...?
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34893293
Nick Gazaloff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Индексы удалите, а после загрузки создайте заново.

http://www.postgresql.org/docs/8.2/interactive/populate.html
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34893402
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhвыгрузка в файл - 20-30 минут
загрузка в таблицу из файла - идет уже со вчерашних 15:00 .... что за ...?грузите напрямую в частичную партиционную таблицу, без check констрейнтов?

PS: для оценки скорости выгрузки/загрузки сначала потестировать на тысяче строк не подумали?
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34893606
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBat Winnipuhвыгрузка в файл - 20-30 минут
загрузка в таблицу из файла - идет уже со вчерашних 15:00 .... что за ...?грузите напрямую в частичную партиционную таблицу, без check констрейнтов?

PS: для оценки скорости выгрузки/загрузки сначала потестировать на тысяче строк не подумали?

именно! в неё.

Подумал, даже попробовал по-живому на другой таблице, входящей в состав (т.е. данные за 2005 год). Там прошло 900 тыщ записей как птица, меньше часа. Вот я наивно и предположил, что если 5 млн с лишним должно пройти тоже соизмеримо. Ан нет.

Кстати, я даже удаляю индексы на этой 06 таблице в которой 0 записей - подождал 20 минут и прервал.
Даже дроп таблицы не дождался.... почему так?
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34893735
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhКстати, я даже удаляю индексы на этой 06 таблице в которой 0 записей - подождал 20 минут и прервал.
Даже дроп таблицы не дождался.... почему так?думаю, локи, см. pg_locks
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34893757
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBat WinnipuhКстати, я даже удаляю индексы на этой 06 таблице в которой 0 записей - подождал 20 минут и прервал.
Даже дроп таблицы не дождался.... почему так?думаю, локи, см. pg_locks

ааа!!! локи могут оставаться после прерванных операций?

есть, 8 записей.
как их грохнуть?
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34893824
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhлоки могут оставаться после прерванных операций?может быть

Winnipuhесть, 8 записей.действительно локи? granted=false? многовато что-то.

Winnipuhкак их грохнуть?прервать процессы, кильнуть бэкенды, перестартовать сервер
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34893903
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeXa NalBat Winnipuhлоки могут оставаться после прерванных операций?может быть

Winnipuhесть, 8 записей. действительно локи? granted=false? многовато что-то.

Winnipuhкак их грохнуть?прервать процессы, кильнуть бэкенды, перестартовать сервер

не,там true ...
...
Рейтинг: 0 / 0
как оптимально (update) создать массивы целых?
    #34894043
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
загрузил, 5,5 млн из файла в таблицу (без индексов, констрейнтов) - 25 минут
практически так же, как и выгрузка.

Спасибо, коллеги!

Буду строить индексы
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как оптимально (update) создать массивы целых?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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