Re: PostgreSQL: Index wird nicht benutzt bei SELECT ... ORDER BY ... OFFSET



Hallo Andreas,

Andreas Kretschmer schrieb:
begin Klaus P. Pieper schrieb:

Hallo,

wie kann man PostgreSQL dazu bringen, auch bei größeren Offsets einen Index zu benutzen?


Probier mal 'SET enable_seq_scan TO off;' und schalte es nach der
Abfrage wieder an.

vmg=> SET enable_seq_scan to off;
FEHLER: unbekannter Konfigurationsparameter »enable_seq_scan«

Vermutlich 'SET enable_seqscan TO off;'?

Ja, das ist schon deutlich besser:

OFFSET Zeit
260000 1113,9ms

EXPLAIN(SELECT F1, F2, F10 FROM MyTable ORDER BY F1 LIMIT 50 OFFSET 260000);

QUERY PLAN
---------------------------------------------------------------------
Limit (cost=961839.15..962024.12 rows=50 width=21)
-> Index Scan using mytableind1 on mytable (cost=0.00..974191.38 rows=263339 width=21)


Alternativ: Du nutzt das, um durch ein Resultat zu wandern, zu Anzeige
oder so? Vielleicht kämest Du mit einem CURSOR besser.

Ja, das werde ich mir einmal ansehen.

Danke

Klaus

--
reply pub . pieper ibeq
to kp3 . at . com
.



Relevant Pages

  • Re: Indexe beissen sich? (Dau-Frage)
    ... > Hast Du mal DBCC CHECKTABLE respektive DBCC CHECKDB ausgeführt? ... checkdb with option PHYSICAL_ONLY: Keine Fehler ... Mit und ohne MAXDOPgibts bei obiger Abfrage mit und ohne Indexe keine ... Nachdem ich den Index des Optimieres benutzt habe gabs folgenden Plan: ...
    (microsoft.public.de.sqlserver)
  • Re: Eigenschaften-Dialog eines Active Directory Objekts aufrufen
    ... genau bezweckst du mit der Abfrage? ... If strName = "" Then ... Set Connection = CreateObject ... Attribut "proxyAddresses". ...
    (microsoft.public.de.german.windows.server.active_directory)
  • Re: Logtabelle mit vielen Werten
    ... Weiters gibt es einen Index auf time_stamp und variable. ... Datensätze von ca. 1000 verschiedenen Variablen und die Abfrage dauert 20 bis 40 Sekunden oder noch länger. ... Weiters hab ich mir gedacht, z.B. eine 2te Tabelle anzulegen, in der ich alle ... Wenn du einen von den beiden CI's anlegst, geht auch das Löschen nach Zeitstempel schnell, weil der die erste Spalte im Index ist. ...
    (microsoft.public.de.sqlserver)
  • Re: create index
    ... Ich habe über eine Abfrage in Access einen Index erstellt: ... Mit der Anweisung ... >dauerhaft in der Tabelle anzulegen. ...
    (microsoft.public.de.access)
  • Re: Fehler bei Index
    ... > Bei der Abfrage sortiereich nach diesem Index ... Bei einem Deadlock liegt kein Fehler in der ... in Verbindung mit anderen Tabellen zu einem ...
    (microsoft.public.de.sqlserver)