AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Gibt es ein DBMS mit einer Art Pointer-Typ?
Thema durchsuchen
Ansicht
Themen-Optionen

Gibt es ein DBMS mit einer Art Pointer-Typ?

Ein Thema von Medium · begonnen am 17. Okt 2017 · letzter Beitrag vom 17. Okt 2017
 
Medium

Registriert seit: 23. Jan 2008
3.687 Beiträge
 
Delphi 2007 Enterprise
 
#1

Gibt es ein DBMS mit einer Art Pointer-Typ?

  Alt 17. Okt 2017, 02:44
Datenbank: Gesucht • Version: egal • Zugriff über: bevorzugt UniDAC
Hallo DP!

Ich hatte heute eine etwas "wilde" Idee, wie ich die Write-Performance unserer HMI-Client-Server Suite verbessern könnte. Aktuell steckt hier eine MariaDB/MySQL hinter, und je nach (projektspezifischem) Aufbau der Daten in der SPS landen diese aus diversen Quellen (ich definiere hier mal "eine Quelle" als eine am Stück übertragbare Menge an Daten von der SPS) in diversen Tabellen. Mit quasi beliebigem Datentyp. Theoretisch kreuz und quer, und diese Flexibilität möchte ich uns auch erhalten. (Bzw. muss, da viele alte Steuerungen noch nicht diesbzgl optimiert strukturiert wurden.)

Es wäre, sowohl beim Lesen aus der SPS als auch beim Schreiben in die DB, viel performanter, wenn ich jeweils ein paar hundert Bytes am Stück verarbeiten könnte. Quasi ein Binärabbild der Speicherbereiche in der SPS in ein Blob-Feld in die DB werfen. (*) Dazu hätte ich gerne eine Kreuztabelle, die mir für jeden tatsächlichen Wert angibt in welcher Tabelle, in welchem Feld (Blob), ab welchem Byte und mit welchem Datentyp mein gewünschter Wert liegt.
Dazu möchte ich aber ungerne immer den gesamten Blob aus der DB fischen und in meinem Programm zerstückeln, sondern am liebsten mein Interface zur DB weitgehend gleich behalten. Ich möchte quasi SELECT ist_wert FROM analogwerte WHERE feldname = 'DRUCK_1.0' schreiben können (nicht zwangsweise diese Form, aber mit diesen Parametern), es gibt aber gar keine Tabelle "analogwerte". Sondern stattdessen eine Tabelle, in der steht: Nimm dieses aus der Tabelle "datenbasis" aus der Spalte "raw_data" (der Blob) mit der id N, und zwar ab Byte 78, und gib das als 2-Byte Integer ohne Vorzeichen zurück.

Dann könnte ich nämlich einfach die Datenbausteine aus der SPS komplett in die DB werfen, und zwar auch deutlich öfter als nur jede Sekunde ein Mal, und habe mit dem Zerpflücken in logisch korrekte Strukturen in meinem Programm nicht mehr zu viel am Hut.

Lohnt es sich überhaupt in diese Richtung weiterzudenken, oder gibt es kein DBMS welches sowas auch nur im Ansatz könnte? (Ich möchte ungerne Plugins für ein DBMS schreiben dafür. Es sollte alles via SQL und Ab-Werk-Funktionen gehen.)

Kennt ihr ein DBMS, das sowas in der Art liefern könnte?
Vielen Dank schon mal!

*) Beim Lesen aus der SPS mache ich das schon, zerstückel dann aber die Daten anhand der vorgegebenen Struktur in der SPS und trage dann alle Werte einen nach dem anderen in die DB ein. Das wird bei ein paar hunderten irgendwann recht langsam, selbst wenn ich mittlerweile pro Tabelle sogar mit nur einem INSERT auskomme. Da dort aber heftige WHERE-IN-() und CASE Konstrukte enthalten sind (da nicht jedes mal immer alle Zeilen und/oder die gleichen Spalten einer Tabelle in einem Durchgang beschrieben werden), ist das in entsprechender Menge ebenfalls bremsend. Besonders wenn zudem auch noch repliziert wird!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (17. Okt 2017 um 02:51 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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