Re: VARCHAR(32) в VARCHAR(64) или TEXT

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)lists(dot)postgresql(dot)org
Subject: Re: VARCHAR(32) в VARCHAR(64) или TEXT
Date: 2018-04-19 13:49:04
Message-ID: 20180419134904.oxutdfs54zdtu6rk@vdsl.uvw.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

> melkij=> create table altervarchar(i int, v varchar(32));
> CREATE TABLE
> melkij=> insert into altervarchar select g, 'fdsfods' || g from generate_series(1,1e7) g;
> INSERT 0 10000000
> melkij=> create index on altervarchar (v);
> CREATE INDEX
> melkij=> set statement_timeout to '1s';
> SET
> melkij=> \timing
> Секундомер включён.
> melkij=> alter table altervarchar alter column v type varchar(64);
> ALTER TABLE
> Время: 1,530 мс
> melkij=> \dt+ altervarchar
> Список отношений
> Схема | Имя | Тип | Владелец | Размер | Описание
> ------------+--------------+---------+----------+--------+----------
> monitoring | altervarchar | таблица | melkij | 498 MB |
> (1 строка)

> Это 9.6 на HDD, за полторы мс полгигабайта не прожуют явно. Индекс как можно заметить не мешает сам по себе.
> А у вас какая версия и не отличается ли чем alter table?

у меня 9.5 и v not null поле.
по v построено несколько индексов (есть уникальный [gid::integer, v])

а так все остальное - так же

ALTER TABLE orders ALTER COLUMN "orderid" TYPE VARCHAR(64);

вешается запрос в статусе disk

13416 postgres 20 0 28G 13G disk 2:19 6.26% 28.04% postgres: tst tst 127.0.0.1(48588) ALTER TABLE

все прочие уходят в статус waiting и все.

дольше 30 секунд ждать не пытался - БД живая.

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

--

. ''`. Dmitry E. Oboukhov <unera(at)debian(dot)org>
: :’ :
`. `~’ GPG key: 4096R/08EEA756 2014-08-30
`- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756

In response to

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2018-04-19 16:17:58 А вот кстати, как быстро заполнить столбик?
Previous Message Sergei Kornilov 2018-04-19 09:54:56 Re: VARCHAR(32) в VARCHAR(64) или TEXT