[PERFORM] started Data Warehousing

2004-03-11 Thread Pablo Marrero
Hello people!  
I have a question, I am going to begin a project for the University in
the area of Data Warehousing and I want to use postgres.
Do you have some recommendation to me?  

Thanks!!

Greetings, Pablo



---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [PERFORM] [ADMIN] syslog slowing the database?

2004-03-11 Thread Joshua D. Drake

Not an option I'm afraid.  PostgreSQL just jams and stops logging after 
the first rotation...
Are you using a copy truncate method to rotate the logs? In RedHat add
the keyword COPYTRUCATE to your /etc/logrotate.d/syslog file.
Sincerely,

Joshua D. Drake





I know some people use this in production.  Dunno what went wrong in
your test, but it can be made to work.
			regards, tom lane

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send unregister YourEmailAddressHere to [EMAIL PROTECTED])

begin:vcard
fn:Joshua D. Drake
n:Drake;Joshua D.
org:Command Prompt, Inc.
adr:;;PO Box 215;Cascade Locks;Oregon;97014;USA
email;internet:[EMAIL PROTECTED]
title:Consultant
tel;work:503-667-4564
tel;fax:503-210-0034
note:Command Prompt, Inc. is the largest and oldest US based commercial PostgreSQL support provider. We  provide the only commercially viable integrated PostgreSQL replication solution, but also custom programming, and support. We authored  the book Practical PostgreSQL, the procedural language plPHP, and adding trigger capability to plPerl.
x-mozilla-html:FALSE
url:http://www.commandprompt.com/
version:2.1
end:vcard


---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [PERFORM] started Data Warehousing

2004-03-11 Thread Joshua D. Drake
Pablo Marrero wrote:
Hello people!  
I have a question, I am going to begin a project for the University in
the area of Data Warehousing and I want to use postgres.
Do you have some recommendation to me?  

Regarding what? Do you have an specific questions?

Sincerely,

Joshua D. Drake


Thanks!!

Greetings, Pablo



---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly

begin:vcard
fn:Joshua D. Drake
n:Drake;Joshua D.
org:Command Prompt, Inc.
adr:;;PO Box 215;Cascade Locks;Oregon;97014;USA
email;internet:[EMAIL PROTECTED]
title:Consultant
tel;work:503-667-4564
tel;fax:503-210-0034
note:Command Prompt, Inc. is the largest and oldest US based commercial PostgreSQL support provider. We  provide the only commercially viable integrated PostgreSQL replication solution, but also custom programming, and support. We authored  the book Practical PostgreSQL, the procedural language plPHP, and adding trigger capability to plPerl.
x-mozilla-html:FALSE
url:http://www.commandprompt.com/
version:2.1
end:vcard


---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faqs/FAQ.html


Re: [PERFORM] compiling 7.4.1 on Solaris 9

2004-03-11 Thread Andrew Sullivan
On Wed, Mar 10, 2004 at 11:07:28AM -0500, Andrew Sullivan wrote:

 At work, we have been doing a number of tests on 7.4.  The
 performance is such an improvement over 7.2 that the QA folks thought
 there must be something wrong.  So I suppose the defaults are ok.

I know, I know, replying to myself.  I just wanted to note that we
_were_ using optimisation with 7.2.  7.4 is still a lot faster.

A

-- 
Andrew Sullivan  | [EMAIL PROTECTED]

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


[PERFORM] Impact of varchar/text in use of indexes

2004-03-11 Thread Mike Moran
Hi. I have two existing tables, A and B. A has a 'varchar(1000)' field 
and B has a 'text' field, each with btree indexes defined. When I do a 
join between these, on this field, it seems to a hash join, as opposed 
to using the indexes, as I might expect (I'm no postgres expert, btw).

My question is: if I changed both fields to be text or varchar(1000) 
then would the index be used?

Ta,

--
Mike


---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: [PERFORM] Impact of varchar/text in use of indexes

2004-03-11 Thread Tom Lane
Mike Moran [EMAIL PROTECTED] writes:
 Hi. I have two existing tables, A and B. A has a 'varchar(1000)' field 
 and B has a 'text' field, each with btree indexes defined. When I do a 
 join between these, on this field, it seems to a hash join, as opposed 
 to using the indexes, as I might expect (I'm no postgres expert, btw).

 My question is: if I changed both fields to be text or varchar(1000) 
 then would the index be used?

Probably not, and in any case your assumption is mistaken.  Indexes are
not always the right way to join.

regards, tom lane

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


[PERFORM] Sorting when LEFT JOINING to 2 same tables, even aliased.

2004-03-11 Thread Octavio Alvarez

Hello to everybody.

I ask your help for a severe problem when doing a query that LEFT JOINs
one table to another ON a field, and then LEFT JOINs again to another
instance of a table ON another field which stores the same entity, but
with different meaning.

I include 3 EXPLAIN ANALYZEs:
* The first one, the target (and problematic) query, which runs in 5 to 6
minutes.
* The second one, a variation with the second LEFT JOIN commented out,
which runs in 175 to 450 ms.
* The third one, a variation of the first one with ORDER BY removed, which
gives me about 19 seconds.

Therefore, I feel like there are two problems here the one that raises the
clock to 6 minutes and one that raises it to 20 seconds. I expected a much
lower time. I checked indexes and data types already, they are all fine.
All relevant fields have BTREEs, all PKs have UNIQUE BTREE, and all id and
ext_* fields have 'integer' as data type. Each ext_* has its corresponding
REFERENCES contraint.

I translated all the table and field names to make it easier to read. I
made my best not to let any typo go through.

I'd appreciate any help.

Octavio.

=== First EXPLAIN ANALYZE ===

EXPLAIN ANALYZE
SELECT
t_materias_en_tira.id AS Id,
t_clientes.paterno || ' ' || t_clientes.materno || ' ' ||
t_clientes.nombre AS Alumno,
t_materias.nombre AS Materia,
t_materias__equivalentes.nombre AS MateriaEquivalente,
t_grupos.nombre AS Grupo,
calificacion_final AS Calificacion,
tipo AS Tipo,
eer AS EER,
total_asistencias AS TotalAsistencias,
total_clases As TotalClases
FROM
t_materias_en_tira
LEFT JOIN t_alumnos_en_semestre ON ext_alumno_en_semestre =
t_alumnos_en_semestre.id
LEFT JOIN t_alumnos ON ext_alumno = t_alumnos.id
LEFT JOIN t_clientes ON ext_cliente = t_clientes.id
LEFT JOIN t_materias ON ext_materia = t_materias.id
LEFT JOIN t_materias AS t_materias__equivalentes ON
ext_materia__equivalencia = t_materias.id
LEFT JOIN t_grupos ON ext_grupo = t_grupos.id
WHERE
t_alumnos_en_semestre.ext_ciclo = 
ORDER BY
Alumno, Materia;

This one gave:
   
  QUERY
PLAN
--
 Sort  (cost=11549.08..11552.11 rows=1210 width=112) (actual
time=311246.000..355615.000 rows=1309321 loops=1)
   Sort Key: (t_clientes.paterno)::text || ' '::text) ||
(t_clientes.materno)::text) || ' '::text) ||
(t_clientes.nombre)::text), t_materias.nombre
   InitPlan
 -  Result  (cost=0.00..0.01 rows=1 width=0) (actual
time=2.000..2.000 rows=1 loops=1)
   -  Hash Left Join  (cost=1089.25..11487.11 rows=1210 width=112)
(actual time=83.000..19303.000 rows=1309321 loops=1)
 Hash Cond: (outer.ext_grupo = inner.id)
 -  Nested Loop Left Join  (cost=1086.92..11454.53 rows=1210
width=107) (actual time=82.000..9077.000 rows=1309321 loops=1)
   Join Filter: (outer.ext_materia__equivalencia =
outer.id) -  Hash Left Join  (cost=1078.15..1181.93
rows=1210
width=93) (actual time=82.000..275.000 rows=3473 loops=1)
 Hash Cond: (outer.ext_materia = inner.id) - 
Merge Right Join  (cost=1068.43..1154.07
rows=1210 width=71) (actual time=81.000..213.000
rows=3473 loops=1)
   Merge Cond: (outer.id = inner.ext_cliente)
-  Index Scan using t_clientes_pkey on
t_clientes  (cost=0.00..62.87 rows=1847
width=38) (actual time=10.000..34.000 rows=1847
loops=1)
   -  Sort  (cost=1068.43..1071.46 rows=1210
width=41) (actual time=71.000..76.000 rows=3473
loops=1)
 Sort Key: t_alumnos.ext_cliente
 -  Hash Left Join  (cost=41.12..1006.48
rows=1210 width=41) (actual
time=9.000..61.000 rows=3473 loops=1)
   Hash Cond: (outer.ext_alumno =
inner.id)
   -  Nested Loop  (cost=0.00..944.18
rows=1210 width=41) (actual
time=3.000..36.000 rows=3473
loops=1)
 -  Index Scan using
i_t_alumnos_en_semestre__ext_ciclo
on t_alumnos_en_semestre
(cost=0.00..8.63 rows=269
width=8) (actual
time=2.000..3.000 rows=457
loops=1)
   Index Cond: (ext_ciclo
= $0)
 -  Index Scan using
i_t_materias_en_tira__ext_alumno_en_semestre
on t_materias_en_tira
(cost=0.00..3.32 rows=12
width=41) (actual
time=0.009..0.035 rows=8
loops=457)
   Index Cond:
(t_materias_en_tira.ext_alumno_en_semestre
= outer.id)
   -  Hash  (cost=36.50..36.50
rows=1850 width=8) (actual

Re: [PERFORM] Sorting when LEFT JOINING to 2 same tables, even

2004-03-11 Thread Stephan Szabo

On Thu, 11 Mar 2004, Octavio Alvarez wrote:


 Hello to everybody.

 I ask your help for a severe problem when doing a query that LEFT JOINs
 one table to another ON a field, and then LEFT JOINs again to another
 instance of a table ON another field which stores the same entity, but
 with different meaning.

 I include 3 EXPLAIN ANALYZEs:
 * The first one, the target (and problematic) query, which runs in 5 to 6
 minutes.
 * The second one, a variation with the second LEFT JOIN commented out,
 which runs in 175 to 450 ms.
 * The third one, a variation of the first one with ORDER BY removed, which
 gives me about 19 seconds.

 Therefore, I feel like there are two problems here the one that raises the
 clock to 6 minutes and one that raises it to 20 seconds. I expected a much
 lower time. I checked indexes and data types already, they are all fine.
 All relevant fields have BTREEs, all PKs have UNIQUE BTREE, and all id and
 ext_* fields have 'integer' as data type. Each ext_* has its corresponding
 REFERENCES contraint.

 I translated all the table and field names to make it easier to read. I
 made my best not to let any typo go through.

 I'd appreciate any help.

This join filter
Join Filter: (outer.ext_materia__equivalencia =
 outer.id)

which I believe belongs to

   LEFT JOIN t_materias AS t_materias__equivalentes ON
 ext_materia__equivalencia = t_materias.id

seems wrong.  Did you maybe mean = t_materias__equivalentes.id
there?


---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]