Reiner: MEMORY Engine

Beitrag lesen

Hi,

Meine Frage ist: Wie kann ich prüfen, ob die Tabelle sich wirklich im Arbeitsspeicher befindet oder wegen Überhang geswapped wird.
Sorry, verlesen.
Ähm, meines Wissens gar nicht, weil dieses Wissen für das DBMS und dein Skript in erster Linie irrelevant sein dürfte. Um das Swapping kümmert sich das Betriebssystem, einzige Anlaufstelle für die Information könnte also dort sein. Dazu müsstest du allerdings die Windows-API oder die deines verwendeten Betriebssystems auseinander nehmen und im nächsten Schritt danach suchen, wie du dran kommst. Wenn es dir lediglich um die manuelle Abfrage geht, könnten dir  entsprechende Analysetools weiterhelfen, vielleicht erkennst du, ob Teile des DBMS geswapped sind.
Was ich mir aber auch vorstellen könnte ist, dass die Tabelle sich sowohl im Hauptspeicher als auch im Swapfile findet.

generell:
Man prüft das doch sicher nicht zur Laufzeit.
Du prüfst das einmal mit einer bestehenden Hardware (Befehl: top), ob die Maschine überhaupt großartig swapt. Danach sollte man das der Maschine überlassen, zumindest Linux macht das sehr effizient.
Bei kleinen Tabellen ist alles sowieso egal und Du mußt den Heap ja auch angeben. Bei großen Datenmengen sollte die Maschine auch mehr Speicher haben.
Ob aber eine Heap-Tabelle wirklich immer schneller ist, ist die Frage.
Bestimmte Dinge (Blobs, Text) funktionieren nicht und schmiert die Maschine ab, ist alles weg.
Richtig schnell wird ein System erst mit sehr viel RAM und wenn man z.B. bei Datenstrukturen diese im RAMauch abwickelt und nur die Ergebnisse in die DB zurückspeichert.

Gruß
Reiner