Ergebnis 1 bis 2 von 2

Thema: Partionierung und Indizes im Speicher

  1. #1
    tklemmer ist offline Neuer Benutzer
    Registriert seit
    10.08.2011
    Beiträge
    15

    Standard Partionierung und Indizes im Speicher

    Ich haber hier (immernoch) eine Datenbank mit 2 ziemlich großen Tabellen
    (jeweils so 200 GB groß - 500 mill Zeilen) da das ganze in Postgis funkioniert habe ich auch einen entsprechenden Index erzeugt und eine Anfrage dauert im Moment so etwa 2 Minuten.

    Der Server verfügt über 16 GB Speicher, leider ist allerdings der
    Index für eine der Tabellen schon ca. 22 GB groß....

    um das ganze jetzt performant zu bekommen und nicht zig Tausend Euro zu investieren habe ich mir folgendes gedacht:

    Da ich gezielte Anfragen auf eine "sub - Tabelle" einschränken kann würde ich jetzt die großen Tabellen in jeweils 2 oder 4 kleinere partionieren. So würde der Index der entsprechenden Tabelle wieder in den Speicher passen und meine Queries wieder fliegen.

    Gibt es eine möglichkeite dem Server explizit zu sagen welchen Index er in den Speicher laden soll und welchen nicht?

    Vielen Dank für die Hilfe

    Thomas.

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

    Standard

    Zitat Zitat von tklemmer Beitrag anzeigen
    Ich haber hier (immernoch) eine Datenbank mit 2 ziemlich großen Tabellen
    (jeweils so 200 GB groß - 500 mill Zeilen) da das ganze in Postgis funkioniert habe ich auch einen entsprechenden Index erzeugt und eine Anfrage dauert im Moment so etwa 2 Minuten.

    Der Server verfügt über 16 GB Speicher, leider ist allerdings der
    Index für eine der Tabellen schon ca. 22 GB groß....

    um das ganze jetzt performant zu bekommen und nicht zig Tausend Euro zu investieren habe ich mir folgendes gedacht:

    Da ich gezielte Anfragen auf eine "sub - Tabelle" einschränken kann würde ich jetzt die großen Tabellen in jeweils 2 oder 4 kleinere partionieren. So würde der Index der entsprechenden Tabelle wieder in den Speicher passen und meine Queries wieder fliegen.

    Gibt es eine möglichkeite dem Server explizit zu sagen welchen Index er in den Speicher laden soll und welchen nicht?

    Vielen Dank für die Hilfe

    Thomas.
    Nein, das geht nicht. Aber ich habe eine andere Idee:

    Wenn Du partitionieren willst, dann hast Du ja ein Kriterium, nach dem Du die Partitionen anlegen willst. Möglicherweise kannst Du aber auch ohne zu partitionieren einfach einen partiellen Index anlegen, der dann natürlich auch kleiner ist. Passen Abfrage und Index zusammen, so bringt dies *richtig* viel. So habe ich z.B. hier für einen Kunden einen partiellen Index, der nur die Daten der letzten N Tage beinhaltet (dieser wird via CRON täglich nachts neu erstellt), da die Abfragen zu nahezu 100% nur für die letzten M (mit M < N) Tage laufen, klappt das super.

    Ob das bei Dir geht, hängt natürlich von Deinen Abfragen ab.


    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

Ähnliche Themen

  1. Kaum verwendete Indizes ermitteln?
    Von ipConfig im Forum SQL
    Antworten: 2
    Letzter Beitrag: 29.09.2010, 17:06
  2. Problem Fehler: Speicher aufgebraucht
    Von zweigelt im Forum SQL
    Antworten: 9
    Letzter Beitrag: 28.07.2010, 07:43
  3. Tablespace für alle Indizes ändern
    Von murphy im Forum Konfiguration
    Antworten: 8
    Letzter Beitrag: 29.06.2010, 09:18
  4. Frage Indizes einer Tabelle per SQL erfragen
    Von RainerB im Forum SQL
    Antworten: 4
    Letzter Beitrag: 27.03.2009, 07:59
  5. Frage zu Indizes
    Von Kai im Forum Allgemeines
    Antworten: 4
    Letzter Beitrag: 22.09.2008, 09:05

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