Lists: | pgsql-de-allgemein |
---|
From: | marc(at)champagnierle(dot)de |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Frage zu "Limit" und "Offset" |
Date: | 2019-10-28 14:56:47 |
Message-ID: | 1952738389.22254.1572274607184@email.ionos.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Hi,
ich arbeite mit einer Tomcat-Applikation, die als Backend einen Postgres 9.6 Server hat.
Da die Applikation zum Teil recht viele Daten anfordert, kann man die angefragten Daten mittels "Limit" und "Offset" stückeln (wir reden da von 100.000-er Blöcken).
Ich habe gerade ein Anfrage geschickt, die nach 17 Sekunden 4.900 Treffer brachte, mit angehängtem "OFFSET 0 LIMIT 100000" hatte ich nach 2 Minuten noch kein Ergebnis...
Habt Ihr mir einen Tipp, wonach ich auf dem Server suchen / was ich umstellen sollte?
Gruß und Danke vorneweg
Marc
==
Marc Neininger, Singen/Htwl.
From: | Harald Armin Massa <harald(dot)armin(dot)massa(at)2ndquadrant(dot)com> |
---|---|
To: | marc(at)champagnierle(dot)de |
Cc: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: Frage zu "Limit" und "Offset" |
Date: | 2019-10-28 15:10:02 |
Message-ID: | CAKp7heJ_bp-X9t-vGzdiGppapJvmCqsMPcFQ2YE+YuGB+WDP-A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
marc,
Markus Winand hat das ausführlich erklärt:
https://use-the-index-luke.com/de/sql/partielle-ergebnisse/blaettern
Gruß
Harald
On Mon, Oct 28, 2019 at 3:56 PM <marc(at)champagnierle(dot)de> wrote:
> Hi,
>
> ich arbeite mit einer Tomcat-Applikation, die als Backend einen Postgres
> 9.6 Server hat.
> Da die Applikation zum Teil recht viele Daten anfordert, kann man die
> angefragten Daten mittels "Limit" und "Offset" stückeln (wir reden da von
> 100.000-er Blöcken).
>
> Ich habe gerade ein Anfrage geschickt, die nach 17 Sekunden 4.900 Treffer
> brachte, mit angehängtem "OFFSET 0 LIMIT 100000" hatte ich nach 2 Minuten
> noch kein Ergebnis...
>
> Habt Ihr mir einen Tipp, wonach ich auf dem Server suchen / was ich
> umstellen sollte?
>
> Gruß und Danke vorneweg
>
> Marc
>
> ==
>
> Marc Neininger, Singen/Htwl.
>
--
--
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.de
2ndQuadrant Deutschland GmbH; Spielberger Str. 49; 70435 Stuttgart
GF: Harald Armin Massa
Amtsgericht Stuttgart, HRB 736399
USt-IdNr: DE277403954
From: | Thomas Kellerer <thomas(at)kellerer(dot)eu> |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: Frage zu "Limit" und "Offset" |
Date: | 2019-10-28 15:10:20 |
Message-ID: | 5f356168-eeb3-f654-68ce-847587c5a059@kellerer.eu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
> ich arbeite mit einer Tomcat-Applikation, die als Backend einen
> Postgres 9.6 Server hat. Da die Applikation zum Teil recht viele
> Daten anfordert, kann man die angefragten Daten mittels "Limit" und
> "Offset" stückeln (wir reden da von 100.000-er Blöcken).
>
> Ich habe gerade ein Anfrage geschickt, die nach 17 Sekunden 4.900
> Treffer brachte, mit angehängtem "OFFSET 0 LIMIT 100000" hatte ich
> nach 2 Minuten noch kein Ergebnis...
>
> Habt Ihr mir einen Tipp, wonach ich auf dem Server suchen / was ich
> umstellen sollte?
Keine direkte Lösung, aber dieser Artikel hier gibt viele Tips:
https://use-the-index-luke.com/no-offset
Ansonsten ist der erste Schritt immer der Blick auf den Execution Plan.
From: | Andreas Kretschmer <andreas(at)a-kretschmer(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: Frage zu "Limit" und "Offset" |
Date: | 2019-10-28 15:11:19 |
Message-ID: | 1ff25793-9533-a577-9cb6-798d5351544a@a-kretschmer.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Am 28.10.19 um 15:56 schrieb marc(at)champagnierle(dot)de:
> Hi,
>
> ich arbeite mit einer Tomcat-Applikation, die als Backend einen
> Postgres 9.6 Server hat.
> Da die Applikation zum Teil recht viele Daten anfordert, kann man die
> angefragten Daten mittels "Limit" und "Offset" stückeln (wir reden da
> von 100.000-er Blöcken).
>
> Ich habe gerade ein Anfrage geschickt, die nach 17 Sekunden 4.900
> Treffer brachte, mit angehängtem "OFFSET 0 LIMIT 100000" hatte ich
> nach 2 Minuten noch kein Ergebnis...
>
> Habt Ihr mir einen Tipp, wonach ich auf dem Server suchen / was ich
> umstellen sollte?
>
>
wie sieht denn das EXPLAIN ANALYSE dazu aus?
Andreas
--
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com
From: | marc(at)champagnierle(dot)de |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: Frage zu "Limit" und "Offset" |
Date: | 2019-10-28 15:32:44 |
Message-ID: | 2078648991.23392.1572276765013@email.ionos.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Hi,
ich erspar' Euch die 110 Zeilen dazwischen.
Planning time: 35.105 ms
Execution time: 728266.526 ms
Das Datenmodell ist etwas umfangreicher (500 Relationen) und die Query hat (aktuell) 9.000 Zeichen. Und da ich sie selbst nicht zu 100% verstehe, traue ich mich nicht, die Query zu posten...
Vielen Dank auch für den Link zum Thema Offset / WINDOW! Soweit war ich in der Datenbänkerei noch nie drin, aber ich schätze, da muss ich rein und durch.
Danke nochmal und ich halt' Euch auf dem Laufenden.
Gruß
Marc
> Andreas Kretschmer <andreas(at)a-kretschmer(dot)de> hat am 28. Oktober 2019 um 16:11 geschrieben:
>
>
>
>
> Am 28.10.19 um 15:56 schrieb marc(at)champagnierle(dot)de:
> > Hi,
> >
> > ich arbeite mit einer Tomcat-Applikation, die als Backend einen
> > Postgres 9.6 Server hat.
> > Da die Applikation zum Teil recht viele Daten anfordert, kann man die
> > angefragten Daten mittels "Limit" und "Offset" stückeln (wir reden da
> > von 100.000-er Blöcken).
> >
> > Ich habe gerade ein Anfrage geschickt, die nach 17 Sekunden 4.900
> > Treffer brachte, mit angehängtem "OFFSET 0 LIMIT 100000" hatte ich
> > nach 2 Minuten noch kein Ergebnis...
> >
> > Habt Ihr mir einen Tipp, wonach ich auf dem Server suchen / was ich
> > umstellen sollte?
> >
> >
>
> wie sieht denn das EXPLAIN ANALYSE dazu aus?
>
>
>
> Andreas
>
> --
> 2ndQuadrant - The PostgreSQL Support Company.
> www.2ndQuadrant.com
>
>
>
==
Marc Neininger
Staufenstrasse 19
78224 Singen
07731 - 3190508
From: | Andreas Kretschmer <andreas(at)a-kretschmer(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: Frage zu "Limit" und "Offset" |
Date: | 2019-10-28 16:05:25 |
Message-ID: | 0f33493e-8e96-36c5-1afd-69517b6a3191@a-kretschmer.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Am 28.10.19 um 16:32 schrieb marc(at)champagnierle(dot)de:
> Hi,
>
> ich erspar' Euch die 110 Zeilen dazwischen.
die wären allerdings von Interesse gewesen ;-)
>
> Planning time: 35.105 ms
> Execution time: 728266.526 ms
das ist schon eine relativ lange Planungszeit. Das *könnte* ein Indix
auf Bloat in den Katalogen sein, muß aber nicht.
Andreas
--
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com
From: | Andreas Kretschmer <andreas(at)a-kretschmer(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: Frage zu "Limit" und "Offset" |
Date: | 2019-10-28 16:44:35 |
Message-ID: | 50a875c0-e16e-b329-c172-43f64015f11a@a-kretschmer.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Am 28.10.19 um 15:56 schrieb marc(at)champagnierle(dot)de:
> Da die Applikation zum Teil recht viele Daten anfordert, kann man die
> angefragten Daten mittels "Limit" und "Offset" stückeln (wir reden da
> von 100.000-er Blöcken).
die Frage, die sich hier stellt: warum fordert die Anwendung so viele
Daten an? Vielleicht könnte man die Daten auch innerhalb der DB
verarbeiten, aber dazu müßte man natürlich Dinge wissen,
die wir nicht wissen.
Andreas
--
2ndQuadrant - The PostgreSQL Support Company.
www.2ndQuadrant.com
From: | marc(at)champagnierle(dot)de |
---|---|
To: | pgsql-de-allgemein(at)lists(dot)postgresql(dot)org |
Subject: | Re: Frage zu "Limit" und "Offset" |
Date: | 2019-10-29 11:42:54 |
Message-ID: | 934793859.34820.1572349374708@email.ionos.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Hi,
ich habe einen Fehler tatsächlich identifizieren können. Und zwar ist mein ORDER BY nicht absolut eindeutig.
Dies muss bei der Verwendung von LIMIT und OFFSET aber sein, damit die Datenbank nicht ausversehen zweitausendmal die selben Daten schickt, weil sie zufällig jedes Mal an einer anderen Stelle steht und nicht durch ordentliche Sortierung immer an der selben Stelle...
Danke einstweilen mal
Marc
> Andreas Kretschmer <andreas(at)a-kretschmer(dot)de> hat am 28. Oktober 2019 um 17:05 geschrieben:
>
>
>
>
> Am 28.10.19 um 16:32 schrieb marc(at)champagnierle(dot)de:
> > Hi,
> >
> > ich erspar' Euch die 110 Zeilen dazwischen.
>
> die wären allerdings von Interesse gewesen ;-)
>
> >
> > Planning time: 35.105 ms
> > Execution time: 728266.526 ms
>
> das ist schon eine relativ lange Planungszeit. Das *könnte* ein Indix
> auf Bloat in den Katalogen sein, muß aber nicht.
>
>
> Andreas
>
> --
> 2ndQuadrant - The PostgreSQL Support Company.
> www.2ndQuadrant.com
>
>
>
==
Marc Neininger
Staufenstrasse 19
78224 Singen
07731 - 3190508