AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Beim öffnen eine DB einen TMemoryStream "unterjubeln"
Thema durchsuchen
Ansicht
Themen-Optionen

Beim öffnen eine DB einen TMemoryStream "unterjubeln"

Ein Thema von DelTurbo · begonnen am 30. Sep 2011 · letzter Beitrag vom 30. Sep 2011
Antwort Antwort
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#1

Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 11:15
Datenbank: Sqlite3 • Version: sqlite-dll-win32-x86-3070701 • Zugriff über: Simple Delphi wrapper
Hi,
Ich habe speed probs mit sqlite3. Nun bin dachte ich das ich ihm beim

TSQLiteDatabase.Create(FName); irgendwie einen TMemoryStream unterschieben könnte. Geht das irgendwie?

Der .backup befehl mit ziel :memory: ist leider auch sehr sehr langsam. Danach ist zwar alles schnell, aber wenn man nur eine sache nach möchte ist es blödsinn alles über die langsame funktion zu laden.

Danke im voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 11:28
Wird vermutlich nicht viel bringen. Der Windows-Filecache-Algorithmus ist so gut das du nach kurzer Zeit kleine DB's mit bis zu 1 GB eh primär aus dem Speicher bedient werden (jedenfalls bei "normalen" PC mit 2/4 oder mehr GB's RAM).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#3

AW: Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 11:37
Ne, die daten kommen vom Netzwerk. Nicht von der Lokalen platte. Dort würde es wirklich nix bringen, da hast du vollkommen recht.

Sorry das ich die info vergessen hatte.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 11:42
Ne, die daten kommen vom Netzwerk. Nicht von der Lokalen platte. Dort würde es wirklich nix bringen, da hast du vollkommen recht.
Und? Hinter dem "Netzwerk" hängt auch eine (vermutlich Windows)-Server und dieser macht das Caching genauso optimal (oft bessser da mehr RAM verfügbar isst).
Und dort ist es oft (wenn die Latenzzeiten nicht zu hoch sind bzw. der Server zu alt bzw. ein Langsames Netz vorliegt) das die Zugriff auf die Netzdaten nicht langsamer ist als auf lokale Daten. Unsere Sourcen z.B. liegen alle auf dem Server und werden für jede Compilerung von dort geholt.


Ich hab vor 2-3 Jahren bei meinen MySQL-Tests festgestellt das diese einfach Grundsätzlich einige Performanceprobleme hat. Primär alle Zeitfresser die ich festgestellt hat waren in den sqlite-DLL's vorhanden.
Windows Vista - Eine neue Erfahrung in Fehlern.

Geändert von Bernhard Geyer (30. Sep 2011 um 11:44 Uhr)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#5

AW: Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 11:51
Ich weiss auch das die sqlite3.dll der "zeitfresser" ist. Deswegen habe ich ja auch geschrieben das ein "einfaches" .backup in :memory: schon langsam ist.

Wenn ich die Daten in einen TMemoryStream lade bin ich zigmal schneller. Deswegen ja auch die frage ob ich dem das "unterjubeln" kann.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 11:56
Wenn hier eh die DLL verwendet wird müsstest du versuchen die WinAPI-Funktionen zu hooken so das ein CreteFile, ... du in deinen Memorystream umleiden kannst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#7

AW: Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 12:16
Tja, und da fehlt mir halt das wissen. Ich weiss nichtmal wonach ich googln sollte, bzw. hier im Board suchen sollte.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 12:30
Such mal hier im Forum nach Hook.
In der JCL gibt es die Klasse TJclPeMapImgHooks welche das Hooking ebenfalls vereinfacht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#9

AW: Beim öffnen eine DB einen TMemoryStream "unterjubeln"

  Alt 30. Sep 2011, 12:39
Danke dir. Nun hab ich wenigsten ein schlagwort wonach ich suchen kann. Wenn einem das fehlt, nützt das beste forum (oder google) nix
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz