From: | Juan José Santamaría Flecha <juanjo(dot)santamaria(at)gmail(dot)com> |
---|---|
To: | Jose Mercedes Venegas Acevedo <jvenegasperu(at)gmail(dot)com> |
Cc: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: índice en campo de tipo tabla |
Date: | 2023-03-29 18:56:11 |
Message-ID: | CAC+AXB2t6k8OCfGzP8kbn6t+fWP-XNjMixMznA-ZjEULGLO67g@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El mié, 29 mar 2023, 17:43, Jose Mercedes Venegas Acevedo <
jvenegasperu(at)gmail(dot)com> escribió:
> Hola comunidad buen dia para todos
>
> Espero puedan colaborarme con la siguiente situacion tengo una tabla de
> auditoria que graba todas las acciones que se realizan sobre mi tablas de
> lotes que representan terrenos de casas la tabla tiene esta estructura
>
> CREATE TABLE IF NOT EXISTS public.cat_lote_audit
> (
> audit_id integer NOT NULL DEFAULT
> nextval('cat_lote_audit_audit_id_seq'::regclass),
> audit_timestamp timestamp with time zone NOT NULL DEFAULT
> CURRENT_TIMESTAMP,
> audit_dbuser name COLLATE pg_catalog."C" NOT NULL DEFAULT CURRENT_USER,
> audit_action character(1) COLLATE pg_catalog."default" NOT NULL,
> audit_old cat_lote,
> audit_new cat_lote,
> CONSTRAINT cat_lote_audit_pkey PRIMARY KEY (audit_id),
> CONSTRAINT cat_lote_audit_audit_action_check CHECK (audit_action = ANY
> (ARRAY['I'::bpchar, 'U'::bpchar, 'D'::bpchar]))
> )
>
> como puede verse audit_old y audit_new son del tipo de la tabla a la que
> le hago la auditoria y contiene todos los campos de la tabla cat_lote
>
> cuando quiero mirar el historico de cambios hago una consulta como esta?
>
> select row_number() over(),audit_timestamp,audit_dbuser,(audit_old).id as
> id_antiguo,(audit_old).the_geom as geo_antiguo,
> (audit_old).nom_cli as nom_cli_antiguo,(audit_old).v_gral as
> v_gral_antiguo,(audit_new).nom_cli as nomcli_nuevo,(audit_new).v_gral as
> v_gral_nuevo,(audit_new).the_geom as geo_nuevo from cat_lote_audit where
> (audit_old).id = '18012200210'
>
> Es decir dentro de audit_old o audit_new colocando los paréntesis para
> encerrar al campo y luego el punto puedo referirme a un campo de la tabla y
> revisar los valores antiguos y nuevos hasta ahi todo bien.
>
> Ahora viene la interrogante resulta que tengo varios millones de registros
> y efectuar una consulta como la anterior ya tarda un tiempo considerable
> asi que intente crear un indice asi:
>
> CREATE INDEX idx_audit_lote_gid_old
> ON cat_lote_audit ((audit_old).id);
>
Creo que faltan paréntesis:
CREATE INDEX idx_audit_lote_gid_old
ON cat_lote_audit (((audit_old).id));
Un saludo,
Juan José Santamaría Flecha
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Jose Mercedes Venegas Acevedo | 2023-03-29 19:15:00 | Re: índice en campo de tipo tabla |
Previous Message | Jose Mercedes Venegas Acevedo | 2023-03-29 15:42:43 | índice en campo de tipo tabla |