Skip site navigation (1) Skip section navigation (2)

Re: writable view performance #1

From: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: writable view performance #1
Date: 2006-12-25 17:18:53
Message-ID: 20061225171853.GA4673@KanotixBox (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
Enrico Weigelt <weigelt(at)metux(dot)de> schrieb:
> > > * die Table base.platform wird eingebaut (join), auch wenn die daraus 
> > >   entstammenden Felder nicht benutzt werden. Kann das denn nicht 
> > >   wegoptimiert werden ?
> > 
> > Wenn diese Table mit eingebaut wird, dann wird das wohl nötig sein.
> > Offensichtlich wird diese irgendwo in Deinen Views mit referenziert.
> 
> Im View an sich ja, aber nicht in der konkreten Query.

Ist in der konkreten Query der View mit drin?

> > > * ich hab auf das seen-Flag (auch in Verbindung mit allerlei anderen
> > >   hier benutzten Feldern) Indices gesetzt - keiner wird verwendet.
> > 
> > BOOL-Felder und Indexe, naja, solche Felder haben keine hohe
> > Selektivität. Näheres würde ein explain analyse verraten.
> 
> Das bringt wohl nicht viele Punkte ? 

Depends. Wenn die überwiegende Mehrheit der Datensätze die
WHERE-Bedingung erfüllt, dann wohl nicht.


> > - Tabellen, die vielen Änderungen (Updates/Deletes) unterliegen
> >   benötigen öfters mal ein Vacuum
> 
> Wie oft ? Gibts da eine Richtschnur ?

Ein simples VACUUM unmittelbar nach gröberen Änderungen schadet selten.


> 
> BTW: werden eigentlich überflüssige updates (also bei denen
> praktisch dieselben Werte wieder geschrieben werden) von postgres
> selbst abgefangen oder gibts da jedesmal echte Schreiboperationen ?

Kann ich grad nicht sagen, müßte man mal ausprobieren. Vermutlich aber
ja. Aber Versuch macht klug:

test=# \d words
   Table "public.words"
 Column | Type | Modifiers
--------+------+-----------
 w      | text |
Indexes:
    "idx_words" btree (lower(w) varchar_pattern_ops)

test=#
test=# select count(*) from words;
 count
-------
 56840
(1 row)

test=# select pg_relation_size('words');
 pg_relation_size
------------------
          2621440
(1 row)

test=# update words set w=w;
UPDATE 56840
test=# select pg_relation_size('words');
 pg_relation_size
------------------
          5234688
(1 row)



Andreas
-- 
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect.                              (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly."    (unknow)
Kaufbach, Saxony, Germany, Europe.              N 51.05082°, E 13.56889°

In response to

pgsql-de-allgemein by date

Next:From: Andreas 'ads' ScherbaumDate: 2006-12-27 01:23:29
Subject: == Wöchentlicher PostgreSQL Newsletter - 25. Dezember 2006 ==
Previous:From: Enrico WeigeltDate: 2006-12-25 02:59:02
Subject: Re: writable view performance #1

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group