Re: [pgsql-de-allgemein] Query SELECT * sehr langsam - Mailing list pgsql-general

From Axel Loder
Subject Re: [pgsql-de-allgemein] Query SELECT * sehr langsam
Date
Msg-id 31701.1133976865@www47.gmx.net
Whole thread Raw
Responses Re: [pgsql-de-allgemein] Query SELECT * sehr langsam
Re: [pgsql-de-allgemein] Query SELECT * sehr langsam
List pgsql-general
Vielen Dank für die Antwort!
Diese Abfrage wird beispielsweise benötigt um alle Rechnungen anzuzeigen.
Habe jetzt mal das "explain analyse" mit dem psql tool durchgeführt und
folgendes kam da raus:
                                                      QUERY
PLAN
-----------------------------------------------------------------------------------------------------------------------
 Seq Scan on "ADRESSEN"  (cost=0.00..14588.75 rows=302975 width=1936)
(actual time=0.052..422.687 rows=302975 loops=1)
 Total runtime: 544.169 ms
(2 rows)

Gibt es irgendwelche Schalter (am Server oder an der Datenbank) die man
betätigen muss um hier einen performancegewinn zu erhalten?
Zum Test habe ich auch mal den perfmon mitlaufen lassen und musste erstaunt
feststellen das schon bei der "Select *" _Abfrage_ sehr viele Datenpakete
übermittelt werden!? Gibt es evtl. eine Einstellung das die Datensätze nicht
schon beim Select * zum Client übertragen werden?

Für Hinweise und Tips wäre ich sehr Dankbar

Axel Loder

PS: Lohnt sich der Aufwand das ganze mal mit einem Linux server zu testen,
oder wird sich da nicht viel an der Performance ändern?




> --- Ursprüngliche Nachricht ---
> Von: "A. Kretschmer" <andreas.kretschmer@schollglas.com>
> An: pgsql-de-allgemein@postgresql.org
> Betreff: Re: [pgsql-de-allgemein] Query SELECT * sehr langsam
> Datum: Tue, 6 Dec 2005 17:34:51 +0100
>
> am  06.12.2005, um 16:47:33 +0100 mailte Axel Loder folgendes:
> > Hallo,
> >
> > POstgreSQL 8.1 ist auf einem Windows 2003 Server (SP 1) installiert. Die
> > Datenbank besteht aus 26 Tabellen. In einer Tabelle (Adressen) sind ca
> > 300000 Datensätze vorhanden. Wenn vom pgAdmin, lokal auf dem Server, die
> > Abfrage "SELECT * FROM "ADRESSEN" gestartet dauert die Ausführung sehr
> > lange. Bis die ersten 100 Datensätze angezeigt werden dauert es 83.218
> ms.
>
> Bin mir grad nicht sicher, ob Du nun (rund) 83 ms oder 83 Sekunden
> meinst...
>
> >
> > Welche Möglichkeiten gibt es hier um den Zugriff zu optimieren?
>
> Nenne mir doch mal bitte eine sinnvolle Anwendung, die das braucht.
> Also, daß der Client _ALLE_ Tupel abfragt. Bei Deinem Szenario addieren
> sich die Zeiten von
>
> - ausführen der Query
> - übertragen der Daten zum Client
>   (auch wenn es dieselbe Kiste ist, so ist dennoch der ganze Krempel
>   via Socket oder localhost zu übertragen)
> - Empfang, Aufgereitung und Darstellung im Client
>
> Zwischen der DB und dem Client findet dabei einiges an Prozesswechseln
> statt.
>
>
> Mach einfach mal folgendes:
>
>   explain analyse SELECT * FROM ADRESSEN;
>
>
> und schau, wie lange das braucht. Aber nicht von einem Klicki-Bunti-Tool
> aus, sonderm vom CLI (Command Line Interace) psql aus. Das, was Du dort
> als Zeit siehst, ist die reine PG-Zeit, und diese wird wahrscheinlich um
> einiges geringer als Deine genannte Zeit sein.
>
>
> Davon abgesehen, traue ich Windows eh nicht zu, als Host für eine
> (performante) Datenbank zu dienen...
>
>
>
> Andreas
> --
> Andreas Kretschmer    (Kontakt: siehe Header)
> Heynitz:  035242/47212,      D1: 0160/7141639
> GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
>  ===    Schollglas Unternehmensgruppe    ===
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq
>

--
GMX DSL-Flatrate 1 Jahr kostenlos* + WLAN-Router ab 0,- Euro*
Bis 31.12.2005 einsteigen! Infos unter: http://www.gmx.net/de/go/dsl

pgsql-general by date:

Previous
From: Antony Gelberg
Date:
Subject: Lost database
Next
From: Alexander Scholz
Date:
Subject: Re: Problem: libpq, network traffic, memory usage