Groups | Search | Server Info | Login | Register
Groups > de.comp.datenbanken.misc > #2603
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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