RE: Consultas sobre vistas

From: Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>
To: "Ing(dot) Jhon Carrillo // Caracas, Venezuela" <jhon(dot)carrillo(dot)foros(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: Consultas sobre vistas
Date: 2005-12-02 20:55:55
Message-ID: 65746BCC3D99E44998976FD845AD6E6E0F1BC5F0@MAIL
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Mi Gran Amigo entra por seq scan, la consulta va orientada mas a la teoría
de las vistas. Tengo pocos registros y una teoría sería que al haber pocos
registros en las tablas (menos de 100 en todas las tablas), y otra que entre
full a todas para luego filtrar mediante el where de la vista (aunque no
creo esto ultimo)

Igual gracias


-----Mensaje original-----
De: Ing. Jhon Carrillo // Caracas, Venezuela
[mailto:jhon(dot)carrillo(dot)foros(at)gmail(dot)com]
Enviado el: Viernes, 02 de Diciembre de 2005 05:41 p.m.
Para: Conrado Blasetti
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Consultas sobre vistas

Usa:

Explain analyze Select total ........

es tu amigo!!!

El día 2/12/05, Conrado Blasetti < <mailto:conrado(at)mapfre(dot)com(dot)ar>
conrado(at)mapfre(dot)com(dot)ar> escribió:

Estimados, buenos días a todos.
Les quiero hacer la siguiente consulta.

A modo de ejemplo:

create table importes
(
cod_cliente int8 NOT NULL,
fecha date not null,
importe numeric(17,2) NOT NULL,
constraint pk_importe primary key (cod_cliente)
)

create view importes_totales as
select cod_cliente,
sum(importe) as total
from importes
group by cod_cliente

Teniendo esta table y vista, puedo consumirlas como:

DETALLE INDIVIDUAL: select cod_cliente, fecha, importe from importes where
cod_cliente = 1
Con esta consulta pg va a usar el indice pk_importe si lo cree conveniente.

TOTAL GENERAL: select sum(total) from importes_totales
Esta consulta no entraría por indice.

Hasta acá todo entendido, pero la consulta es cuando la quiero consumir la
vista de esta manera:

TOTAL INDIVIDUAL: select total from importes_totales where cod_cliente = 1
Como maneja pg esta consulta?
Primero resuelve full de esta manera:
select cod_cliente,
sum(importe) as total
from importes
group by cod_cliente
y al resultado le aplica el where cod_cliente = 1, o va a resolverlo por
indice?

Desde ya, muchas gracias.
Saludos,
Conrado

---------------------------(fin del mensaje)---------------------------
TIP 5: ¿Has leído nuestro extenso FAQ?

http://www.postgresql.org/files/documentation/faqs/FAQ.html
<http://www.postgresql.org/files/documentation/faqs/FAQ.html>

--
Jhon Carrillo
DBA / Software Engineer
Caracas-Venezuela

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Andrew Sullivan 2005-12-02 21:08:56 Re: 15,000 tables
Previous Message Ing. Jhon Carrillo // Caracas, Venezuela 2005-12-02 20:41:19 Re: Consultas sobre vistas