Zum Inhalt springen

Rundtabellen und optimierte Primärschlüssel

In einigen Anwendungsfällen müssen Daten für eine begrenzte Zeit gespeichert werden. Zeitreihen sind ein solcher Anwendungsfall, bei dem Daten mithilfe eines Zeitstempels eingegeben werden. Messungen können von Sensoren mit einer hohen Frequenz gesammelt, verschlüsselt und gespeichert, später mit dem Schlüssel abgerufen und dann analysiert werden. Aufgrund des Volumens müssen einige dieser Daten möglicherweise zu einem späteren Zeitpunkt gelöscht werden. Hier gedeihen kreisförmige Tabellen und die optimierten Primärschlüssel von RDM.

 

Rundtabellen und die neu gestalteten Primärschlüssel für RDM 15.0 wurden unter Berücksichtigung dieses Anwendungsfalls optimiert. Wenn Daten in runden Tabellen gespeichert werden, wird davon ausgegangen, dass die Daten im Allgemeinen in der Schlüsselreihenfolge empfangen und eingefügt werden¹. Wenn die Zirkeltabelle "voll" ist, werden die ältesten Daten automatisch aus der Datenbank gelöscht. Dieses Betriebsmuster kann im Vergleich zu nicht geordneten Einsätzen um eine Größenordnung effizienter sein². Dies kann sowohl in Bezug auf die CPU-Zeit als auch in Bezug auf die E / A-Menge der Fall sein. Der Grund für diese erhöhte Effizienz ist, dass die internen Datenstrukturen sehr effizient sind, wenn alle Einfügungen mit zunehmenden Primärschlüsselwerten und alle Löschungen mit den minimalen Primärschlüsselwerten vorliegen.

 

Copy-on-Write

Eine weitere Entwurfsentscheidung in RDM, die zur Effizienz von Rundtabellen beiträgt, ist die von RDM Copy-on-Write ohne Verwendung eines Transaktionsprotokolls. Dies ist aus zwei Gründen vorteilhaft. Erstens werden die Daten ohne Transaktionsprotokoll nur einmal geschrieben.³ Zweitens kann mit Copy-on-Write ein Snapshot von Daten sehr effizient implementiert werden, wodurch der Zugriff auf Daten ohne Sperren ermöglicht wird und dennoch eine konsistente Ansicht der zuvor geschriebenen Daten angezeigt wird.

 

Schnappschüsse

Daten, die zu runden Tabellen hinzugefügt und festgeschrieben wurden, können kurz danach für einen Schnappschuss zur Verfügung gestellt werden. Anwendungen, die dies tun, weisen im Vergleich zu Anwendungen, die die Daten zu einem viel späteren Zeitpunkt verwenden, eine höhere Leistung auf. Dies liegt am Caching. Ohne eine effiziente Snapshot-Implementierung wäre es möglicherweise nicht möglich gewesen, die Daten kurz nach dem Einfügen zu verwenden, da die Leistung durch Sperren beeinträchtigt wurde.

 

Staubsaugen

Schließlich werden kreisförmige Tabellen, in denen die ältesten Daten gelöscht werden, häufig nicht kopiert Staubsaugen da die Daten bereits gelöscht wurden, wenn die eigentliche Packdatei gesaugt wird.

 

Verwenden eines Primärschlüssels anstelle einer Zeilen-ID

Frühere Versionen von RDM verwendeten immer die Zeilen-ID, um Zeilendaten zu lokalisieren. Mit RDM 15.0 haben wir das geändert. Wenn ein Primärschlüssel definiert ist, wird anstelle der Zeilen-ID der Primärschlüsselwert verwendet. Dies hat einige zusätzliche Vorteile. Erstens müssen wir für Fremdreferenzen die Fremdzeile nicht mehr nachschlagen, um den entsprechenden Primärschlüssel zu finden, da der Primärschlüssel für die Referenz verwendet wird. Zweitens kann die Zeile ohne Einbeziehung des Primärschlüssels codiert werden, da der Primärschlüssel für jede Referenz darauf verwendet wird.

 

Datenbank Union

RDM bietet die Möglichkeit, eine Reihe von Datenbanken zum Lesen in einer Ansicht zu öffnen (Datenbankvereinigung). Der optimierte Primärschlüssel, bei dem anstelle der Zeilen-ID ein Primärschlüssel zum Auffinden der Zeilendaten verwendet wird, macht die Vereinigung beim Auffinden des vom Primärschlüssel geordneten Datums effizienter. Es war oft nicht sinnvoll, die Daten in der Reihenfolge der Zeilen-ID abzurufen, in der Zeilen mit derselben Zeilen-ID aus verschiedenen Datenbanken zusammengestellt wurden, da die Zeilen-IDs aus verschiedenen Datenbanken möglicherweise nicht miteinander verknüpft sind.

 

Letztes Wort

All diese Faktoren tragen in vielen Anwendungsfällen mit runden Tabellen zu einer hervorragenden Leistung bei. Bereit anzufangen? Herunterladen Raima Database Manager hier.

 

von Sverre Hvammen Johansen und Daigoro Toyama

¹oder in der Nähe der Schlüsselreihenfolge
²Diese Aussage ist weniger wahr, wenn die Datenmenge für jeden Primärschlüsselwert groß ist oder Transaktionen jeweils nur eine oder mehrere Zeilen einfügen
³Angenommenes Staubsaugen findet nicht statt