Dear,
With alternative, I tested the creation using concurrency
(CREATE INDEX CONCURRENCY NAME_IDX ON TABLE USING HASH (COLUMN);

from what I saw the index already appeared in the query result, because
before this, the index did not even appear in the result, only the Lineitem
table:

SELECT
      L.mode, c.relname, locktype, l.GRANTED, l.transactionid,
virtualtransaction
FROM pg_locks l, pg_class c
where c.oid = l.relation

screen result after concurrency: https://i.stack.imgur.com/htzIY.jpg

Now, I'm waiting to finish creating the index.

2017-10-11 19:54 GMT-03:00 Neto pr <neto...@gmail.com>:

> Hello all,
> I ran the query on PG_STAT_ACTIVITY table (Select * From
> pg_stat_activity),  see the complete result in this worksheet of the link
> below.
>
> https://sites.google.com/site/goissbr/img/Resultado_pg_stat_
> activity-create_index.xls
>
> The CREATE INDEX command line is identified with the orange background.
> At this point 18 hours have passed and the creation of a single index has
> not yet been completed.
> I have verified that the command is Active status, but I do not know if
> it's waiting for anything, can you help me analyze the attached output.
>
> Regards
> Neto
>
> 2017-10-11 18:08 GMT-03:00 Tomas Vondra <tomas.von...@2ndquadrant.com>:
>
>>
>>
>> On 10/11/2017 04:11 PM, Neto pr wrote:
>> >
>> > 2017-10-11 10:46 GMT-03:00 Laurenz Albe <laurenz.a...@cybertec.at
>> > <mailto:laurenz.a...@cybertec.at>>:
>> >
>> >     Neto pr wrote:
>> >     > When creating index on table of approximately 10GB of data, the
>> DBMS hangs (I think),
>> >     > because even after waiting 10 hours there was no return of the
>> command.
>> >     > It happened by creating Hash indexes and B + tree indexes.
>> >     > However, for some columns, it was successfully (L_RETURNFLAG,
>> L_PARTKEY).
>> >
>> >     > If someone has a hint how to speed up index creation so that it
>> completes successfully.
>> >
>> >     Look if CREATE INDEX is running or waiting for a lock (check the
>> >     "pg_locks" table, see if the backend consumes CPU time).
>> >
>> >
>> > In this moment now, there is an index being created in the Lineitem
>> > table (+ - 10 Gb), and apparently it is locked, since it started 7 hours
>> > ago.
>> > I've looked at the pg_locks table and look at the result, it's with
>> > "ShareLock" lock mode.
>> > Is this blocking correct? or should it be another type?
>> >
>>
>> Yes, CREATE INDEX acquire SHARE lock, see
>>
>>    https://www.postgresql.org/docs/9.1/static/explicit-locking.html
>>
>> > Before creating the index, should I set the type of transaction lock?
>> What?
>>
>> Eeee? Not sure I understand. The command acquires all necessary locks
>> automatically.
>>
>> > ------------------------------------------------------------
>> -------------------------------
>> > SELECT
>> >       L.mode, c.relname, locktype,  l.GRANTED, l.transactionid,
>> > virtualtransaction
>> > FROM   pg_locks l, pg_class   c
>> > where  c.oid = l.relation
>> >
>> > -------------- RESULT
>> > --------------------------------------------------------------
>> > AccessShareLock       pg_class_tblspc_relfilenode_index
>>  relation        TRUE
>> > (null)        3/71
>> > AccessShareLock       pg_class_relname_nsp_index      relation
>> TRUE    (null)  3/71
>> > AccessShareLock       pg_class_oid_index      relation        TRUE
>> (null)  3/71
>> > AccessShareLock       pg_class        relation        TRUE    (null)
>> 3/71
>> > AccessShareLock       pg_locks        relation        TRUE    (null)
>> 3/71
>> > ShareLock     lineitem        relation        TRUE    (null)  21/3769
>> >
>> >
>>
>> Well, we see something is holding a SHARE lock on the "lineitem" table,
>> but we don't really know what the session is doing.
>>
>> There's a PID in the pg_locks table, you can use it to lookup the
>> session in pg_stat_activity which includes the query (and also "state"
>> column that will tell you if it's active or waiting for a lock.
>>
>> regards
>>
>> --
>> Tomas Vondra                  http://www.2ndQuadrant.com
>> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>>
>
>

Reply via email to