Ergebnis 1 bis 7 von 7

Thema: Performance von Views

  1. #1
    EvgeniT ist offline Neuer Benutzer
    Registriert seit
    14.06.2010
    Beiträge
    2

    Standard Performance von Views

    Hallo PostgreSQLer,

    ich arbeite oft mit vielen Views, die Abfragen laufen dabei meistens über PostGIS Funktionen und sind dementsprechend langsam. Nun möchte ich nachfragen ob es Möglichkeiten zur Performancesteigerung bei Views gibt. Mir ist vor allem ein Abfrage-Caching wichtig, so dass ein bereits generiertes View gecached werden kann und bei wiederholtem Aufruf nur die gecachten Daten geliefert werden, wenn die Ausgangstabellen sich nicht verändert haben. Ich weiß, das es bei MySQL diese Möglichkeit besteht und hoffe, dass es für Postgres so etwas auch gibt.

    Gruß aus Iserlohn

    Evgeni T.

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von EvgeniT Beitrag anzeigen
    Hallo PostgreSQLer,

    ich arbeite oft mit vielen Views, die Abfragen laufen dabei meistens über PostGIS Funktionen und sind dementsprechend langsam. Nun möchte ich nachfragen ob es Möglichkeiten zur Performancesteigerung bei Views gibt. Mir ist vor allem ein Abfrage-Caching wichtig, so dass ein bereits generiertes View gecached werden kann und bei wiederholtem Aufruf nur die gecachten Daten geliefert werden, wenn die Ausgangstabellen sich nicht verändert haben. Ich weiß, das es bei MySQL diese Möglichkeit besteht und hoffe, dass es für Postgres so etwas auch gibt.

    Gruß aus Iserlohn

    Evgeni T.
    Nein. Ein VIEW ist nur die Definition einer Abfrage. Diese Definition ist gespeichert, mehr nicht. Bei einem Zugriff auf eine VIEW wird die Abfrage ausgeführt.
    Um also eine VIEW zu beschleunigen, muß man die Abfrage beschleunigen. Punkt.


    Du kannst aber hier mal nachlesen: Materialized Views in PostgreSQL

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    EvgeniT ist offline Neuer Benutzer
    Registriert seit
    14.06.2010
    Beiträge
    2

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    Nein. Ein VIEW ist nur die Definition einer Abfrage. Diese Definition ist gespeichert, mehr nicht. Bei einem Zugriff auf eine VIEW wird die Abfrage ausgeführt.
    Um also eine VIEW zu beschleunigen, muß man die Abfrage beschleunigen. Punkt.


    Du kannst aber hier mal nachlesen: Materialized Views in PostgreSQL

    Andreas
    Danke für den Link!

    Leider kann ich die Abfrage kaum beschleunigen. Die Geometrien-Spalten sind bei mir schon mit GIST indexiert, aber die graphischen JOINs mit contains(), intersects(), u.a. Funktionen aus PostGIS sind nun mal sehr rechenintensiv und da kenne ich keinen Weg dran vorbei.

  4. #4
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Um dir das mit den Views mal zu verdeutlichen: führe mal ein EXPLAIN für einen deiner Views aus und den EXPLAIN auch für die Abfrage hinter dem View. Du wirst sehen, dass beide gleich sind.
    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

  5. #5
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Um dir das mit den Views mal zu verdeutlichen führe mal einen EXPLAIN auf einen View aus und einen EXPLAIN auf die Abfrage, die sich hinter dem View versteckt.
    Du wirst sehen, dass beide Ausgaben gleich sind.
    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

  6. #6
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    *blöde Forensoftware*

    Egal, zum eigentlichen Problem: wie sieht denn ein EXPLAIN für so eine langsame Anfrage aus?
    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

  7. #7
    Gisman ist offline Erfahrener Benutzer
    Registriert seit
    20.01.2006
    Ort
    Pfalz
    Beiträge
    751

    Standard

    Welches PostGIS/geos-library benutzt du denn? Seit 1.4 hat sich da einiges verbessert beim Vergleich von Geometrien. Andernfalls kannst du versuchen, per SQL den Umfang der zu selektierenden Geometrien vorab soweit wie möglich zu reduzieren.
    Falls du große, unregelmässige Polygone hast, die mit viel Kleinkram verschnitten werden solltest du auf jeden Fall PostGIS 1.4/geos 3.1 verwenden, ggf könntest du hier die Polgone auch noch in kleinere Rasterquadrate zerlegen, so das nicht jeder Fussel mit dem Riesenpolygon verschnitten werden muß.

    Gruß Uwe
    Have a lot of fun!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum