Das mit "These" und "Widerspruch" ist Unsinn, denn es dauert einige Tage, die die Programme laufen müssen, bevor man sicher sein kann, dass deren Speicherbedarf konstant ist.
Art: Beiträge; Benutzer: nobody0
Das mit "These" und "Widerspruch" ist Unsinn, denn es dauert einige Tage, die die Programme laufen müssen, bevor man sicher sein kann, dass deren Speicherbedarf konstant ist.
Ich habe nix von Glauben geschrieben; der konstante Speicherbedarf ist mit ps gemessen.
Aufgefallen ist mir auch, das Postgres auch Minuten nach den Abfragen, also im "Leerlauf", noch heftig auf der Platte arbeitet. Woran kann das liegen? :confused:
Und was genau heißt groß?
Welche Muster-Konfiguration empfehlen denn die Experten hier? :confused:
Wieso sollte bei einfachen Anfragen geswappt werden? :confused:
Im Programm habe ich vor jedem PQexec ein PQclear, so daß sowohl bei Postgres als auch beim Programm der Speicherbedarf konstant sein...
Schon beim Anlegen der Tabelle verwende ich
PRIMARY KEY (foo, foo1),
und auch ein Einspielen des Dumps ändert nichts an der schlechten Performance.
Bei einzelnen Zugriffen kann man einen index ohne reorganize noch verwenden, aber spätestens wenn man viele Zugriffe blockweise hat, braucht man reorganize.
Ansonsten werden die Daten zwar im...
Aha, danke, aber ein INDEX ohne die Daten danach anzuordnen ist doch IMHO Snakeoil, weil's fast nichts bringt, denn auch damit dauert das Ausgeben der Daten in der Index-Reihenfolge schon bei wenigen...
Um die Daten geordnet abzulegen, habe ich einen Index erstellt:
CREATE UNIQUE INDEX data_index ON data (foo, foo1);
aber Abfragen mit
SELECT * FROM data ORDER BY foo,foo1 LIMIT %d OFFSET %d...
Also ich lese die Daten nur aus, aber das funktioniert nur bei relativ wenig Zeilen gut; bei einige Millionen wird das Auslesen immer langsamer, obwohl PostgreSQL heftige Platten-Aktivität verursacht...
Ja, mir ist schon aufgefallen, dass es ohne Blöcke relativ langsam ist.
Wenn es mit Blöcken noch zu langsam ist, kann ich ja noch zusätzlich einen binären Cursor nehmen.
Die Angabe mit dem Komma funktioniert nicht:
ERROR: LIMIT #,# syntax is not supported
HINT: Use separate LIMIT and OFFSET clauses.
Es geht aber so:
SELECT * FROM foo ORDER BY bar,bar1...
Ich brauche eine Tabelle in PostgreSQL Zeile für Zeile ausgelesen und weil es ein paar Millionen Zeilen sind, die nicht in das RAM passen, geht das mit SELECT * nicht.
Irgendwelche Vorschläge?...
Du kannst alle Werte einer Stunde rausbekommen mittels Zeitangabe mit between.
Daraus kann man die Summe berechnen.
Ja, das Buch "Datenbank-Anwendungen mit PostgreSQL" machte zwar einen guten Eindruck und es ist gut lesbar, aber der Autor hat nicht viel Ahnung vom Thema, da nirgends PQclear erwähnt wird. Damit...
So, mit den Änderungen, also
Eintragen in /var/lib/pgsql/data/postgresql.conf:
bgwriter_delay = 10000
commit_delay = 100000
wal_files = 0 # range 0-64
wal_buffers = 128 # range 4-Max...
Achso; das ist mir neu, weil das im Buch, dessen Beispiele ich nur ausgebaut habe, nicht erwähnt wird und auch in den Beispielen fehlt :rolleyes:
Beim Import von einigen Daten ist mein C-Programm nach ca. 50 Mio. Zeilen stehengeblieben und zwar bei PQexec.
Ein Nachsehen mit top zeigt, daß der Speicherverbrauch gigantisch ist und die Ursache...
Der Import läuft mit einem C-Programm und über
result = PQexec (dbhandle, abfrage);
Ich werde demnächst commit_delay und bgwriter_delay auf Maximum setzen; vielleicht liegt es daran.
Mir ist auch aufgefallen, das der Import heftige Festplatten-Aktivität verursacht, obwohl nur relativ wenig geschrieben wird. Anscheinend ist das der Flaschenhals.
Wie kann man PostgreSQL dazu...
Ok, dann mache ich mal COMMIT nur nach dem Einlesen von jeder der rund 50.000 Dateien.
Nach ein paar Millionen Zeilen ohne Commit streikt PostgreSQL auch ...
Nein, nie. Das COMMIT ist eingespart worden.
Ok, Indizes weg geht noch, aber die Daten sollen schon beim Import überprüft werden.
Hm, da bleibt wohl nur zwei Wochen mit INSERT einzuplanen, denn COPY reicht nicht, da die Daten-Dateien mit zip (zlib) komprimiert sind, nicht alles drinn steht, was in PostgreSQL rein soll und zudem...
Ich habe das Problem, dass ich in eine Datenbank rund 100 Mio. Zeilen einfügen muß und dass es mit INSERT sehr lange dauert (einige Tage). Dabei ist nicht das importierende C-Programm der...
Ich habe es aufgegeben und verwende stattdessen Prettyprinter (bcpp; bringt besser lesbaren Code, in den einige Fehler deutlicher werden) und aktiviere alle Warnungen beim Compiler (Option -Wall beim...