Grüß Gott,
Wir haben ein schlimmes Problem bei dem aktualisiseren eines materialized Views (mv_statistik)
Hintergrund: bei einem unserer Kunden sind in dem mv ca. 460.000 Datensätze.
Über einen Trigger wird folgendes aufgerufen:
Die Funktion mv_statistik_rfhrow sieht so aus:Code:PERFORM mv_statistik_rfhrow(v_statistik.spk) FROM v_statistik WHERE v_statistik.nkvposkey = NEW.nkvposkey;
Code:DELETE FROM mv_statistik WHERE spk = $1; INSERT INTO mv_statistik SELECT * FROM v_statistik WHERE spk = $1;
eine Änderung in einer der abhängigen Tabellen führt nun leider dazu, dass etwa 2:20 min (1:40 min mit index auf mv_statistik.nkvposkey bzw. mv_statistik.spk) vergehen, bevor man weiterarbeiten kann.
Wie kann ich diese Zeit drastisch reduzieren?
Geht es überhaupt , die Zeit auf unter 2 sekunden zu reduzieren?
Da unser Kunde viel mit Kassenbwegungen zu tun hat (Frequenz einer Aldikasse) mussten wir schnell handeln und haben alle Trigger ausgeschaltet.
Jetzt haben wir uns überlegt, manuell per "Knopfdruck" den mv neu aufzubauen.
Intressanterweise dauert das neuanlegen des mv's nicht so lange, wie das refreshen einiger Datensätze dort drin...Code:EXECUTE 'DELETE FROM ' || matview; EXECUTE 'INSERT INTO ' || matview || ' SELECT * FROM ' || entry.v_name;
Jedoch haben wir zur zeit das problem, das sich die Zeiten hochschaukeln:
1. mal 20 sekunden
Heute nach dem 10. mal etwa 2:30min
Dabei hat sich die Anzahl der Datensätze nicht verändert!
Wie kann man das aufschaukeln erklären?
Wie kann man dagegen steuern?
Die 2:30min teilen sich auf in das Ausführen des Statement und in das commiten.
Das committ alleine dauert (merkwürdigerweise?) über 1 minute. Wie kommt das?
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Da gibt es eine ganze Reihe Mittel, die man da anwenden kann. Einen Punkt hat akretschmer schon angesprochen: das sind wohl viele tote Tuples, da könnte - und sollte - man aufräumen. Ein anderer wäre, dass man das Tabellendesign passend wählen kann.
Aber wie gesagt: Remote ist das schlecht zu handhaben.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen