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
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 |