PostgreSQL langsam (Blob)

  • Themenstarter Themenstarter verus
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
V

verus

Gast
Moin,

ich speichere viele Blob's (OID) in der Datenbank. Leider ist die Geschwindgkeit mit der die Daten gelesen werden stark eingebrochen. Die Tabelle, in der die meisten Blob's gespeichert sind, besteht aus etwas mehr als 350.000 Einträgen. Bei der Anzahl von Blob's hatte ich noch nicht mit so einem Geschwindigekeitseinbruch gerechnet. Was mache ich falsch? Liegt es überhaupt an den Blob's oder sollte ich eine andere Stelle verdächtigen?

Interessant finde ich, dass die CPU Last auf 100% steigt. Ich hatte ehr damit gerechnet, dass die Festplatte am rödeln ist.

Auf die Daten wird via Hibernate zugegriffen. Eine Abfrage auf Java Seite macht Hibernate zu drei Queries. Zwei Queries greifen nur auf sehr kleine Tabellen zu, so dass ich diese als Performancebremse ausgeschlossen habe. Die dritte ist die mit den vielen Blob's.
 
Zunächst einmal solltest du schauen womit der Rechner seine Zeit vertrödelt. Ist es das Programm? Ist es die SQL-Abfrage? Ist es das Lesen der Daten?

RDBMS haben gemeinhin 1001 performance-relevante Konfigurationsparamter, die entsprechend eingestellt werden möchten. Es hat durchaus seinen Grund, warum "Datenbankadministrator" ein eigener Berufsstand ist. Irgendwer muss nämlich Hardware, OS und RDBMS auf die Anwendung(en) abstimmen, Bottlenecks suchen und User in den Allerwertesten treten.

Am Anfang steht aber bei jedem Problem die Analyse.
 
Hallo,

ich persönlich würde PostgreSQL nicht als RDBMS bezeichnen :wink: PostgreSQL ist objektorientiert und daher immer etwas langsamer als andere Datenbanken. Aber das mit der CPU-Auslastung kommt mir jetzt auch etwas Spanish vor. Hast du schon eine kleine Analyse durchgeführt?
 
Siassei hat gesagt.:
Hallo,

ich persönlich würde PostgreSQL nicht als RDBMS bezeichnen :wink:

Die PostgreSQL Macher tun dies aber sehrwohl: "PostgreSQL is a powerful, open source relational database system."
http://www.postgresql.org/about/
Es ist davon auszugehen, dass die am besten beurteilen können, was PostgreSQL ist und was nicht.

PostgreSQL ist objektorientiert und daher immer etwas langsamer als andere Datenbanken.

Postgres ist grundsätzlich eine relationale Datenbank, keine objektorientierte. Es gibt lediglich OO Ansätze, wie das Ableiten von Tabellen.

http://de.wikipedia.org/wiki/Objektorientierte_Datenbank
http://de.wikipedia.org/wiki/RDBMS

Vielleicht mal etwas vorsichtiger mit Fachbegriffen umgehen, in deren Verwendung man nicht ganz sattelfest ist 😉
 
Danke für eure Hilfe. Das Problem lag an schlecht angelegten Indexen. Nun habe ich den Index richtig angelegt und schon funktioniert wieder alles wieder wunderbar schnell.
 
AlArenal hat gesagt.:
Siassei hat gesagt.:
Hallo,

ich persönlich würde PostgreSQL nicht als RDBMS bezeichnen :wink:

Die PostgreSQL Macher tun dies aber sehrwohl: "PostgreSQL is a powerful, open source relational database system."
http://www.postgresql.org/about/
Es ist davon auszugehen, dass die am besten beurteilen können, was PostgreSQL ist und was nicht.
Hallo AlArena,

es war nicht bös gemeint :wink: Ich persönlich setze im privaten Bereich neben H2, PostgreSQL ein und finde es ist eine gute DB. Im Vergleich zu MySQL (da gibt es genügend schlechte Beispiele :wink: ) ist PostgreSQL bei größeren Datenmengen einfach deutlich langsamer. PostgreSQL ist aber wohl das einzige DB-System, dass den SQL-Standart so gut wie ganz unterstützt. Ausgenommen ein paar ganz kleine Ausnahmen :wink:
 
Ja, leider setzt sich nicht immer das bessere Design durch. Ist immer gruselig, wenn Leute nicht verstehen wollen, dass AUTO_INCREMENT kein Standard ist...

Ketzterisch könnte man sagen, MySQL ist das Windows der Datenbanken...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben