Der Datenbank Cache enthält einen automatischen Mechanismus zum Verwalten der Prioritäten. Das sorgt für hohe Effizienz und Performance beim Zugriff auf Daten: Wird Platz zum Laden neuer Daten in den Cache benötigt, werden Daten im Cache mit niedriger Priorität zuerst entfernt, während Daten mit höherer Priorität im Cache erhalten bleiben.
Dieser Vorgang läuft vollautomatisch und in der Regel müssen Sie sich um nichts kümmern. Für besondere Fälle sind aber auch individuelle Vorgaben möglich. Über spezifische Befehle können Sie die Priorität von Objekten für die gesamte Laufzeit der Anwendung oder temporär für den aktuellen Prozess verändern. Beachten Sie, dass diese Befehle mit Bedacht verwendet werden müssen, da sie die Performance der Anwendung beeinflussen.
Der Cache Manager wählt Daten, die bei Bedarf aus dem Cache entfernt werden müssen, nach Alter und Häufigkeit der Nutzung aus und zusätzlich nach ein Prioritätensystem. Es gibt drei Arten von Objekten mit unterschiedlicher Priorität:
- Tabellen: Standardmäßige Daten im Datenfeld (Zahl, Datum...), außer Blobs (siehe nächster Punkt). Die standardmäßige Priorität ist mittel
- Blobs: Binäre Daten im Datenfeld (Text, Bild, Objekt und Blob), die in der Datendatei gespeichert werden. Die standardmäßige Priorität ist am niedrigsten
- Indizes: Alle einfachen Indizes auf Felder, inkl. Volltext-Indizes und zusammengesetzte Indizes. Da häufig auf Indizes zugegriffen wird, haben sie einen Sonderstatus im Cache. Die standardmäßige Priorität ist am höchsten.
In der Regel bieten die standardmäßig definierten Prioritäten die beste Performance. Für besondere Fälle gibt es zwei Befehlssätze, um die Priorität im Cache individuell anpassen:
Diese Befehle sind nur auf 4D Server oder 4D im lokalen Modus verfügbar:
Hinweis: Bitte beachten Sie, dass die Funktion Cache info nur Prioritätsänderungen durch die SET-Befehle berücksichtigt, die für die gesamte Datenbanksitzung gelten, jedoch nicht Prioritätsänderungen durch die ADJUST-Befehle, die nur für den aktuellen Prozess gelten. Verwenden Sie hierzu die entsprechenden GET-Befehle.