Vladimir Simakov: Ist es prinzipiell schwierig, den Zugriff auf dieselbe Datenbank von verschiedenen Programmen/Terminals aus zu synchronisieren? Werden wir wieder zum Ersatzmann?
Haben Sie die obige Leistungstabelle gesehen? In MQL5 ist es oft schneller als in C++.
Natürlich ist alles multithreadingfähig und alles ist korrekt.
Die Frage ist, was passiert, wenn verschiedene Programme/Prozesse unabhängig voneinander auf dieselbe Datenbankdatei zugreifen. Es handelt sich nicht um ein Programm (MQL5), sondern um mehrere unabhängige Programme, die nichts voneinander wissen und nicht dasselbe Datenbank-Handle verwenden.
Die Leistung ist in der Tat ausgezeichnet. Ja, verschiedene Prozesse in Sqlite werden wahrscheinlich blockiert sein. Vielleicht sollte das Datenbank-Handle eine Präprozessor-Direktive für jede einzelne Datei sein, die in jedem EA/Skript deklariert werden sollte, so etwas wie ein internes gemeinsames Handle für Base.
Übrigens... vor kurzem ist mir aufgefallen, dass der Laptop langsamer geworden ist. Ich habe das Laufwerk gereinigt und beschlossen, zu prüfen, wie sich die SSD anfühlt, da es sich um ein glänzendes Stück Hardware handelt, mit dem ich mich nicht viel beschäftigt habe. Bei der Überprüfung wurde eine Restlebensdauer von 68 % angezeigt, der Laptop ist etwas über 2 Jahre alt. Das ist witzig.
Aber soweit ich mich erinnere, könnte die Schraube an der Spindel nach 2 Jahren still und leise gestorben sein.
Systemlaufwerk, alle appdata/roaming Dateien für MT5 sind auf einem anderen Laufwerk, das ich nicht überprüft habe
Pavel Verveyko: Vielen Dank für die wertvolle Einführung. Sie können jetzt Datenbanken statt Dateien verwenden, um große Datenmengen zu speichern.
Entschuldigung für die nubische Frage: "Was ist der grundlegende Unterschied? Ist es einfacher und bequemer, sie zu sortieren? Mehr Platz? Sonst noch etwas?
Wenn Sie Daten zwischen Terminals austauschen wollen, wie wäre es dann, wenn Sie ein Terminal zum Bearbeiten und das andere nur zum Lesen von Dateien anschließen, und zwar über einen superschnellen Speicher?
Die Funktion DatabaseExecute akzeptiert Zeilen, um die Tabelle zu füllen, aber es können nicht mehr als 64 Zeilen sein. Dies ist eine Einschränkung der Funktionsparameter. Und wenn es mehr Reihen gibt? Wie füllt man eine große Tabelle sequentiell?
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Ist es prinzipiell schwierig, den Zugriff auf dieselbe Datenbank von verschiedenen Programmen/Terminals aus zu synchronisieren? Werden wir wieder zum Ersatzmann?
Jetzt können Sie Datenbanken anstelle von Dateien verwenden, um große Datenmengen zu speichern.
Wir haben eine solche Aufgabe überhaupt nicht vor uns.
Haben Sie die obige Leistungstabelle gesehen? In MQL5 ist es oft schneller als in C++.
Natürlich ist alles multithreadingfähig und alles ist korrekt.
Die Frage ist, was passiert, wenn verschiedene Programme/Prozesse unabhängig voneinander auf dieselbe Datenbankdatei zugreifen. Es handelt sich nicht um ein Programm (MQL5), sondern um mehrere unabhängige Programme, die nichts voneinander wissen und nicht dasselbe Datenbank-Handle verwenden.
Die Leistung ist in der Tat ausgezeichnet.
Ja, verschiedene Prozesse in Sqlite werden wahrscheinlich blockiert sein.
Vielleicht sollte das Datenbank-Handle eine Präprozessor-Direktive für jede einzelne Datei sein, die in jedem EA/Skript deklariert werden sollte,
so etwas wie ein internes gemeinsames Handle für Base.
Hören Sie auf, unverhohlenen Unsinn über "tödliche SSDs" von inkompetenten Benutzern zu verbreiten.
Die Terminal-zu-Terminal-Kopierer auf dem Markt arbeiten nach dem Prinzip, die Daten in der Datei alle 10 Sekunden zu aktualisieren.
Es ist nicht schwer zu berechnen, wie viele Datensätze das pro Jahr sind.
Übrigens... vor kurzem ist mir aufgefallen, dass der Laptop langsamer geworden ist. Ich habe das Laufwerk gereinigt und beschlossen, zu prüfen, wie sich die SSD anfühlt, da es sich um ein glänzendes Stück Hardware handelt, mit dem ich mich nicht viel beschäftigt habe. Bei der Überprüfung wurde eine Restlebensdauer von 68 % angezeigt, der Laptop ist etwas über 2 Jahre alt. Das ist witzig.
Aber soweit ich mich erinnere, könnte die Schraube an der Spindel nach 2 Jahren still und leise gestorben sein.
Systemlaufwerk, alle appdata/roaming Dateien für MT5 sind auf einem anderen Laufwerk, das ich nicht überprüft habe
Die Terminal-zu-Terminal-Kopierer auf dem Markt arbeiten nach dem Prinzip, die Daten in der Datei einmal alle 10 Sekunden zu aktualisieren.
Es ist nicht schwer zu berechnen, wie viele Datensätze dies pro Jahr sind.
Vielen Dank für die wertvolle Einführung.
Sie können jetzt Datenbanken statt Dateien verwenden, um große Datenmengen zu speichern.
Wenn Sie Daten zwischen Terminals austauschen wollen, wie wäre es dann, wenn Sie ein Terminal zum Bearbeiten und das andere nur zum Lesen von Dateien anschließen, und zwar über einen superschnellen Speicher?
Wäre dies in mql4 möglich?