Groups | Search | Server Info | Login | Register


Groups > de.comp.datenbanken.misc > #2603

Re: Langsame Query nach Update

From Patrick Rudin <taxi_bs@gmx.ch>
Newsgroups de.comp.datenbanken.misc
Subject Re: Langsame Query nach Update
Date 2025-08-20 16:32 +0200
Message-ID <mgm4kiF72r4U1@mid.individual.net> (permalink)
References (11 earlier) <slrn10a9hdi.2v9jt.hjp-usenet4@trintignant.hjp.at> <mgk12eFqqbvU1@mid.individual.net> <slrn10a9naf.32nqf.hjp-usenet4@trintignant.hjp.at> <mgllt7F4nf7U1@mid.individual.net> <slrn10abd8v.3qhna.hjp-usenet4@trintignant.hjp.at>

Show all headers | View raw


Peter J. Holzer wrote:
> Wenn Du zwei getrennte Indizes für jahr und monat hast, hat PostgreSQL 4
> Möglichkeiten:
> 
> * Es verwendet den Index für jahr, um alle Zeilen mit jahr=2025 zu lesen
>    und wirft dann die weg, die nicht monat=7 habe,
> * Sinngemäß das gleiche mit vertauschten Rollen für jahr und monat.
> * Es liest den Index für jahr, um alle Blöcke zu finden, die Daten mit
>    jahr=2025 enthalten, dann den Index für monat, um alle Blöcke zu
>    finden, die Daten mit monat=7 enthalten und bildet die Schnittmenge.
>    Anschließend liest es dann nur diese Blöcke und filtert die noch auf
>    jahr=2025 and monat=7.
> * Es liest gleich die ganze Tabelle und filtert auf jahr=2025 and monat=7.

Ich bin naiv davon ausgegangen, dass er selbstverständlich Variante 3 
nimmt, also beide per Index auswählen und dann matchen.

Inzwischen bin ich bei der Lektüre von
https://use-the-index-luke.com/sql/where-clause/the-equals-operator/slow-indexes-part-ii
und so langsam wird mir auch ein Teil der PG-Doku klar.

Und ja, ich hab dann auch eine leichte Idee davon, weshalb er diesmal 
die ganze DB durchsucht hat. Gerade wenn seit 2018 alle Monate 
vollständig drin sind und nur der Juli 25 neu drin war.

> Wie gesagt, EXPLAIN ist ein extrem wichtiges Werkzeug, um
> Performance-Problemen auf die Spur zu kommen. Wenn man nicht weiß, was
> die Datenbank macht, stochert man einfach nur sinnlos im Nebel.

Oki, ich werde mich am Wochenende mal genauer damit beschäftigen, so 
langsam wird mir die Funktionsweise des internen Planers klar.

> Also mach bitte Nägel mit Köpfen und poste:
> 
> 1. Die Query, die Du da tatsächlich absetzt (wenn Du die aus R nicht
>     rauskriegst, setze entweder «log_statement = 'all'» oder
>     «log_min_duration_statement = 1000» in der Datenbank und suche sie
>     Dir aus dem Log raus.

dbplyr kann die Query anzeigen. Hier simuliert mit einer Testdatei, weil 
ich grad auf einem anderen Rechner ohne PG-DB bin:

Testtabelle:

test
# A tibble: 3 × 3
    wert  jahr monat
   <dbl> <dbl> <dbl>
1     5  2018     7
2     6  2019     9
3     7  2021     8

Simuliert als SQLite im Speicher und kurz reinkopiert:
copy_to(con, test, "test")

Abfrage dann in tidyverse:
tbl(con, "test") %>% filter(jahr==2021, monat==8) %>% show_query()

<SQL>
SELECT `test`.*
FROM `test`
WHERE (`jahr` = 2021.0) AND (`monat` = 8.0)

Gruss

Patrick

Back to de.comp.datenbanken.misc | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Langsame Query nach Update (was: Drehplatte versus SSD bei PostgreSQL) "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-08-20 13:44 +0200
  Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-20 16:32 +0200
  Re: Langsame Query nach Update Marcel Mueller <news.5.maazl@spamgourmet.org> - 2025-08-20 19:50 +0200
  Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-20 20:16 +0200
    Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-20 20:37 +0200
      Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-20 20:39 +0200
      Re: Langsame Query nach Update "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-08-21 15:26 +0200
  Re: Langsame Query nach Update Marcel Mueller <news.5.maazl@spamgourmet.org> - 2025-08-20 20:39 +0200
    Re: Langsame Query nach Update "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-08-20 23:37 +0200
      Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-21 19:15 +0200
      Re: Langsame Query nach Update "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-08-21 21:24 +0200
      Re: Langsame Query nach Update Marcel Mueller <news.5.maazl@spamgourmet.org> - 2025-08-22 10:55 +0200
  Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-21 12:46 +0200
    Re: Langsame Query nach Update "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-08-21 15:18 +0200
      Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-21 19:17 +0200
        Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-21 20:30 +0200
          Re: Langsame Query nach Update "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-08-21 21:16 +0200
        Re: Langsame Query nach Update "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-08-21 21:13 +0200
          Re: Langsame Query nach Update Patrick Rudin <taxi_bs@gmx.ch> - 2025-08-22 19:35 +0200
            Re: Langsame Query nach Update "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2025-08-22 20:49 +0200
              Re: Langsame Query nach Update Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2025-08-22 19:25 +0000

csiph-web