![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: egal
PageBuffers werden nicht richtig angewendet
Hallo,
Per gfix -buffers kann ich ja den Page-Cache einer DB erhöhen, siehe auch hier: ![]() Ich habe jetzt eine DB mit einer Page-Size von 1024, also 1kB. Ich setzte jetzt die Buffers auf 8192 Seiten. Jetzt sollte der FB-Server (Superserver) sich maximal 8 MB gönnen, weil genau nur eine einzige Verbindung hergestellt ist. Tut er aber nicht ... Ich habe einen Client, also noch ~ 250 kB für die eine Verbindung. Der DB-Server ist aber lauf Taskmanager bereits auf 14 MB angestiegen. Was mache ich falsch? Danke Heiko |
AW: PageBuffers werden nicht richtig angewendet
Hast Du evtl. mehrere Datenbanken die unter dem Superserver laufen?
|
AW: PageBuffers werden nicht richtig angewendet
Hallo,
weil genau nur eine einzige Verbindung hergestellt ist. Ich habe FB auch mal neu gestartet, das gleiche. Ich habe das Gefühl, dass das Query-Sort im Speicher erfolgt, und dafür der Ram benutzt wird. Während einer aufwendigen Aktion geht der Speicher hoch über 8 MB, danach wieder runter unter 8 MB. Heiko |
AW: PageBuffers werden nicht richtig angewendet
ich mach mal vorsichtig *Push*
Heiko |
AW: PageBuffers werden nicht richtig angewendet
Wo sonst außer im Speicher sollte denn das Sortieren einer Query-Ergebnismenge deiner Meinung nach stattfinden?
|
AW: PageBuffers werden nicht richtig angewendet
Hallo,
auf der Festplatte. Dazu gibt es ja das einstellbare Temp-Verzeichnis in der Firebird.conf. Ich versuche zu berechnen, wie groß ich die PageSize für einen Kunden setzen kann. Hier ein interessanter Link ![]() Heiko |
AW: PageBuffers werden nicht richtig angewendet
Auf der Festplatte? Das würde bei einer großen Ergebnismenge ja ewig dauern bei den Zugriffszeiten!
Wenn du ein Select-Query mit einem Order-Befehl absetzt und der eine Ergebnismenge zurückliefert, die sortiert werden muß, dann geschieht das immer im Speicher, ob das jetzt das DBMS macht oder deine Query oder dein Dataset. Vermutlich geht's in diesem Link um irgend einen Cashe, der mit Sicherheit im Speicher vorbereitet wird, bevor er auf die Platte kommt. Aber sorry, ich hab jetzt keine Zeit, den Text in diesem Link zu lesen und zu übersetzen, stehe etwas unter Termindruck. |
AW: PageBuffers werden nicht richtig angewendet
Hallo,
kein Problem. :) Ich muss mir das auch erst mal genau durchlesen. Im Moment bin ich genau so ein Developer wie beschrieben :) Heiko |
AW: PageBuffers werden nicht richtig angewendet
Naja externe Sortierverfahren sind ja nicht ganz neu, allerdings finden die Vergleiche immer noch im Hauptspeicher statt, und um eine möglichst hohe Performance zu erreichen sollte möglichst viel Hauptspeicher genutzt werden.
Gruß K-H |
AW: PageBuffers werden nicht richtig angewendet
Hallo,
stimmt bei FB nicht ganz. Bei großen ResultSets wird das Ergebnis im Temp abgelegt. Ich sollte also am besten ein bisschen RAM übrig lassen bei meiner Berechnung der besten PageSize. Heiko |
AW: PageBuffers werden nicht richtig angewendet
Firebird verwendet für unterschiedliche Dinge verfügbaren RAM. Page Cache, Metadaten Ache, temp. Ergebnismengen by ORDER / GROUP BY, Lock Manager etc. Page Cache, RAM für temp. Ergebnismengen und Lock Manager läßt sich konfigurieren. Abhängig von der verwendeten Firebird Architektur (SuperServer, SuperClassic, Classic) kommt dann noch die Anzahl der DB-Verbindungen als Multiplikationsfaktor hinzu.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz