Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Warum ist sqlite sooo langsam? Sollte man wechseln? (https://www.delphipraxis.net/162350-warum-ist-sqlite-sooo-langsam-sollte-man-wechseln.html)

DelTurbo 18. Aug 2011 13:43

Datenbank: sqlite • Version: 3.7 • Zugriff über: direkt

Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Hallo,
ich habe eine frage. Ich versuche grade eine Datenbank zu erstellen. Im moment nehme ich sqlite3. Das Problem ist, die sachen sollen Portable (z.b. USBStick) sein. Aber auch im WLAN schnell abrufbar sein.

Ich habe nun schon einiges versucht um es mit sqlite3 schneller zu bekommen. Ich bin in einem GB-LAN. Das sqlite3 liest aber nur mit 8MB/s, obwohl 70MB/s möglich wären. Die CPULast ist gleich null während dem lesen.

Wieso ist das so? Auch wenn ich die DB mit .backup ins ram hohle, kommt er nicht über die 8MB/s. Auch dort bleibt die CPULast auf 0.

Ein grosses problem ist auch, wenn ich mit WLAN darauf zugreife.. dann wird das *gäääähn* langweilig.

Die DB hate eine grösse von ~247MB. Es sind ~17.000 einträge enthalten.

Soll ich mein glück weiterversuchen mit sqlite3 oder gibt es was anderes, was KEINEN Server braucht, und trotzdem schnell ist???

Danke im voraus

Bernhard Geyer 18. Aug 2011 13:46

AW: Allgemeine frage
 
Kann bestätigen das SQLite teilweise gähnend langsam ist.
Alterantive gibts einige ohne Server wie ADSLocalServer, TurboDB, Accuracer, ...

Hätten bald TurboDB genommen. Einzig bei komplexeren Joins ist damals die performance eingebrochen.
ADS hatte "nur" das Lizensierungsproblem (Betrieb auf Remote Desktop, Citrix).

Luckie 18. Aug 2011 13:48

AW: Allgemeine frage
 
Auch einer allgemeinen Frage kann man einen aussagekräftigen Titel geben.

tsteinmaurer 18. Aug 2011 13:50

AW: Allgemeine frage
 
Firebird (http://www.firebirdsql.org) könnte ein Thema sein und zwar in der Embedded Variante.

mkinzler 18. Aug 2011 13:51

AW: Allgemeine frage
 
Das Problem ist eher, das nicht nur das Ergebnsi, sondern ein Teil der datei übetragn werden muss.

DelTurbo 18. Aug 2011 14:07

AW: Allgemeine frage
 
Das ist richtig, das ich bwz. die sqlite3.dll das ergebniss und diverse pointer lesen muss. Aber warum nimmt er nicht die Bandbreite die ich habe??? Sondern idelt mit 0 Cpu-last bei 8MB/s rum? Das kapier ich nicht.

Es könnte wesentlich schneller sein (knapp 10x), wenn er die Bandbreite die da ist, auch nutzen würde.

Gruss

@Luckie, Sorry für das topic. Ich habe die anfrage 3mal umgeschrieben und vergessen das Topic zu ändern. Nun kann ich das wohl nichtmehr ändern.

BUG 18. Aug 2011 14:13

AW: Allgemeine frage
 
Hier gibt es Vorschläge wie du SQLite wahlweise auch als Client/Server-Datenbank betreiben könntest.

Über eine Netzwerkfreigabe direkt auf der Datei arbeiten würde ich nicht machen: abgesehen davon das es langsam ist, könnte da (je nach Art der Freigabe) vielleicht auch mal was kaputtgehen.

mkinzler 18. Aug 2011 14:19

AW: Allgemeine frage
 
Zitat:

Zitat von tsteinmaurer (Beitrag 1117859)
Firebird (http://www.firebirdsql.org) könnte ein Thema sein und zwar in der Embedded Variante.

So kann man dann auch leicht bei größerer last auf den server switchen

tsteinmaurer 18. Aug 2011 14:27

AW: Allgemeine frage
 
Das tolle in der 2.5er Version ist, dass Embedded auf der neuen SuperClassic Architektur basiert, wo mehrere Server/Embedded-Prozesse auf die selbe Datenbank draufgehen können.

DelTurbo 18. Aug 2011 14:45

AW: Allgemeine frage
 
Das brauche ich alles garnicht. Es greift immer nur einer auf die DB zu. Es soll halt nur schnell sein, und nicht unerklärlicherweise irgendwo "ideln".

Erstaml danke an alle. Ich schaue mir mal das FirebirdSql an, wenn ich meine neue idee wieder verwerfen sollte.

Da ich wirklich nix besondere mache, ich suche nur z.b. einen string und lasse mir die IDs zurückgeben wo der String auftaucht. Ich denke mal das die änderungen am Programm minimal sind um auf MySql zu gehen. Die querys bleiben ja gleich.

IDEE: Eventuell mach ich das so.. Ich schaue ob ich den MySql-Server finde. Ist das nicht der fall, falle ich zurück auf sqlite und suche die datenbank. Dann wäre es in LAN schnell (auch unter WLAN) und portable.

Phoenix 18. Aug 2011 14:45

AW: Allgemeine frage
 
Würdest Du bitte vorerst noch den Titel Deines Threads korrigieren und zu etwas machen, das auch zum Inhalt passt? Danke.

himitsu 18. Aug 2011 14:48

AW: Allgemeine frage
 
Zitat:

IDEE
Besser andersrum.
Schauen ob eine DB-Datei im Programmverzeichnis liegt oder im Benutzerverzeichnis
und wenn nicht, dann die Datenbank suchen.
Auswahl was gemacht werden soll, in der Installation/Konfiguration des Programms.

Denn wenn es portabel sein soll und du hast eine Verion mit lokaler/privater Datei, dann würde urplötzlich das Falsche geladen, wenn sich auf dem Rechner zufällig eine Datenbank befindet.

DelTurbo 18. Aug 2011 15:01

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Nein, ich mach das schon so rum wie ich schrieb. Die datei (sqlite) liegt auf dem Server und wird jede nacht neu erstellt. Das heisst, wenn ich das prg starte ist die datei da. "Auswärts" werden eh keinerlei änderungen vorgenommen. Nur gesucht. Es kann also zu keinerlei konflikten kommen.

Wenn ich das mitnehme muss ich es eh aktuell auf den stick kopieren.

Gruss

mkinzler 18. Aug 2011 15:11

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Ich würde immer lokal das selbe DBMS wie am Server einsetzen

DelTurbo 18. Aug 2011 15:26

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Es ändert sich ja nur das öffnen der DB. Die querys bleiben ja gleich. Zumal ich glaube, MySql gibt nicht zum "mitnehmen", oder hab ich mich verlesen?

Und die Datenbank z.b. in eine Cloud zu packen..... das lassen wir mal. Meine daten gehören mir :) und ich wäre IMMER auf Internet angewiesen.

DeddyH 18. Aug 2011 15:28

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Wie kommst Du eigentlich auf MySQL? Außer Dir hat das niemand angesprochen, sofern ich nichts überlesen habe.

Bernhard Geyer 18. Aug 2011 15:29

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von DelTurbo (Beitrag 1117885)
Es ändert sich ja nur das öffnen der DB. Die querys bleiben ja gleich. Zumal ich glaube, MySql gibt nicht zum "mitnehmen", oder hab ich mich verlesen?

Doch gibts. Kosted aber bei ClosedSource mindesten 20-30 k€/Jahr.

DelTurbo 18. Aug 2011 15:33

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von DeddyH (Beitrag 1117886)
Wie kommst Du eigentlich auf MySQL? Außer Dir hat das niemand angesprochen, sofern ich nichts überlesen habe.

Hast du meine idee übersehen? Ich hab hier 2 MySqlServer am laufen. 24/7.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1117887)
Doch gibts. Kosted aber bei ClosedSource mindesten 20-30 k€/Jahr.

Ups, wusste ich garnicht.

DeddyH 18. Aug 2011 15:43

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Ich denke, es geht um die portable DB. Und da hat eben niemand MySQL erwähnt.

Bernhard Geyer 18. Aug 2011 15:43

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von DelTurbo (Beitrag 1117888)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1117887)
Doch gibts. Kosted aber bei ClosedSource mindesten 20-30 k€/Jahr.

Ups, wusste ich garnicht.

Ok. Entweder für jede Verteilung eine Serverlizenz oder als Pauschale für die Firma den o.g. Preis. Könnte jetz mit der oracle-Übernahme noch teurer geworden sein.

DelTurbo 19. Aug 2011 09:43

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Huhu, nur als rückmeldung. Da gestern abend mein TV ausgefallen ist, wegen dem Starken regen und SAT... das verträgt sich nicht, habe ich mir mal Delphi zu einem MySql-Server angeshen.

Ich werde das nun doch mit dem MySql machen. Da das prg zu 95% hier im lan rennt. Sollte ich es mal mitnehmen, kann ich immernoch auf sqlite gehen.

Gruss und danke für die hilfe, bzw. neuen denk ansätze...

QuickAndDirty 19. Aug 2011 09:50

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Und nicht vergessen MySql ist nicht wirklich "frei" solltest du die MySqlClient Dll mit dem Produkt ausliefern wollen ....

Und nicht vergessen! Ellison würde auch seine Großmutter verklagen....Sun war einmal jetzt ist Oracle...

Firebird dagegen ist frei!

DelTurbo 19. Aug 2011 10:05

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Danke für den hinweis. Aber das kleine Prog ist nur für mich, um meinen Kram etwas besser verwalten zu können.

Das heisst, es wird mich nie verlassen.

Vielen dank für die "warnung". Aber wenn was sein sollte, sage ich eh, das ich das prog von dir habe :-D:-D *war ein spässle*

Mal davon abgesehen. Ich habe mir von hier den "client" gehohlt. http://www.delphi-treff.de/tutorials...ct/einleitung/

Da steht kostenlos. Oder seh ich grade mal wieder den Wald vor lauter Bäumen nicht?

himitsu 19. Aug 2011 10:56

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Du darfst es zwar kostenlos nutzen, es aber nicht weitergeben. :stupid:

Phoenix 19. Aug 2011 10:59

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von himitsu (Beitrag 1118025)
Du darfst es zwar kostenlos nutzen, es aber nicht weitergeben. :stupid:

Darf er schon. Solange er die GPL einhält.

DelTurbo 19. Aug 2011 11:00

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Aha, das ist ja wie früher (vor ca. 25 Jahren) mit den "ExportTelefonen". Man durfte sie kaufen, aber nicht besitzen... :?

EDIT:
Zitat:

Zitat von Phoenix (Beitrag 1118026)
Zitat:

Zitat von himitsu (Beitrag 1118025)
Du darfst es zwar kostenlos nutzen, es aber nicht weitergeben. :stupid:

Darf er schon. Solange er die GPL einhält.

Ist nun der Client oder der Server gemeint. Sorry wenn ich doof frage, da das ding eh nur für mich ist. Aber es intersiert mich.

QuickAndDirty 19. Aug 2011 11:39

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
MySQL hat ein Duales Lizenzmodell!
die eine lizenz ist scheiße!
und die andere Lizenz ist die GPL , dh. du musst den Quellcode veröffentlichen sonnst darfst es nicht weitergeben.

Für dich selbst kannst es natürlich Closed Source benutzen...^^ musst nur den Quellcode vergessen..

Ich glaube wenn du ne MySQL version 3.X in die Finger bekommst hast du bessere lizenzbedingungen...da war noch alles frei glaube ich mich zu erinnern.

DelTurbo 19. Aug 2011 11:51

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Danke euch, für die aufklärung. Sowas finde ich sch.... Da hat man sich ja schnell strafbar gemacht ohne es zu wissen.

himitsu 19. Aug 2011 12:01

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Mußte man die Codes nicht nur veröffentlichen, wenn das eigene Programm ohne deren DLL nicht funktionsfähig war?

Wenn du für die Verbindung zum großen Zerver ohne die DLL auskommst, dann könnte das ein Schlupfloch sein.

DelTurbo 19. Aug 2011 12:09

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Bei meinem MySql versuch gestern abend war KEINE DLL bei. Nur bei sqlite3 ist eine DLL dabei.

franktron 19. Aug 2011 12:17

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1118038)
MySQL hat ein Duales Lizenzmodell!
die eine lizenz ist scheiße!
und die andere Lizenz ist die GPL , dh. du musst den Quellcode veröffentlichen sonnst darfst es nicht weitergeben.

Für dich selbst kannst es natürlich Closed Source benutzen...^^ musst nur den Quellcode vergessen..

Ich glaube wenn du ne MySQL version 3.X in die Finger bekommst hast du bessere lizenzbedingungen...da war noch alles frei glaube ich mich zu erinnern.


Man kann auch MariaDB nehmen das hat diese Lizenbestimmungen nicht und ist 100% mit MYSQL Kompatibel

Phoenix 19. Aug 2011 12:18

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Die Thematik hatten wir schon ein paar mal.

Alles, was gegen MySQL-Code linkt (z.B. auch gegen die libmysql.dll), muss, sofern es ausgeliefert wird, entweder die kommerzielle Lizenz haben oder es unterliegt der GPL. Das betrifft dann logischerweise auch die komplette Applikation, wenn sie eine Komponente verwendet die die libmysql.dll verwendet. ZEOS verwendet die Bibliothek z.B, die DevArt Komponenten für MySQL aber nicht, damit ist man also mit dem Client sauber raus (darf den Server aber dennoch nicht mitliefern, den muss sich der Kunde selber runterladen).

Bernhard Geyer 19. Aug 2011 14:29

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von himitsu (Beitrag 1118043)
Wenn du für die Verbindung zum großen Zerver ohne die DLL auskommst, dann könnte das ein Schlupfloch sein.

Wie gut sind deine Anwälte um es auf sowas ankommen zu lassen? SAP musst schon teuer bezahlen das es nicht erfürchtig vor Ellison in die Knie geht.

QuickAndDirty 20. Aug 2011 10:12

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Edit:
Zu spät gesehen: Was himitsu sagt!!!


altes zeug:


Zitat:

Zitat von himitsu (Beitrag 1118043)
Mußte man die Codes nicht nur veröffentlichen, wenn das eigene Programm ohne deren DLL nicht funktionsfähig war?

Wenn du für die Verbindung zum großen Zerver ohne die DLL auskommst, dann könnte das ein Schlupfloch sein.

Soweit ich weiß betreffen die lizenzbeduingungen nur die Client dll und den server.
Wenn dein Programm alleine zu einem Server connecten kann und die MySqlClient dll nicht verwendet bist du aus dem Schneider! Muss der Kunde nur wissen wie man nen MySqlServer einrichtet....

QuickAndDirty 20. Aug 2011 10:15

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1118073)
Zitat:

Zitat von himitsu (Beitrag 1118043)
Wenn du für die Verbindung zum großen Zerver ohne die DLL auskommst, dann könnte das ein Schlupfloch sein.

Wie gut sind deine Anwälte um es auf sowas ankommen zu lassen? SAP musst schon teuer bezahlen das es nicht erfürchtig vor Ellison in die Knie geht.

Er lädt alle Kosten und den entstandenen Schaden bei DevArt ab. Mal ganz davon abgesehen habt ihr euch mal die über die MySQLServer bedingungen informiert? Komerzielle Kunden müssen mittlerweile gut zahlen!
OOOOOH...
liebe LAMP Fans war der Gute Onkel Ellison zu besuch?

Ich glaube in Taiwan oder Südkorea stellen sie schon Ellison action figuren her...weil der bedarf an Ellison woudou puppen so gestiegen ist.

^^

"Wir von MySQL AB glauben an Open-Source-Software. Wir ermutigen jeden, Open-Source-Software im Rahmen der GPL-Lizenz zu veröffentlichen. "

^^

DelTurbo 20. Aug 2011 10:28

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Hi,
erstmal, es ist nett von euch das ihr so helft und einen nicht ins offene messer laufen lassen wollt. :thumb:

Aber das ist wie gesagt, das programm ist nur für mich um meinen kram besser zu ordnen. Im hinterkopf hatte eventuell schon, das als Freeware weiterzu geben. Wenn es denn mal einen Stand erreicht wo alle fehler abfragen drin sind. Aber das Theater mit dem lizenz kram werde ich mir bestimmt nicht antun.

Was ich nur nicht recht verstehe ist, ihr redet immer von einer libmysql.dll. Die ist doch garnicht bei. Da ist garkeine dll bei.

Oder muss ich auch bezahlen wenn ich nur die Komandos benutze?

QuickAndDirty 20. Aug 2011 10:46

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von DelTurbo (Beitrag 1118240)
Oder muss ich auch bezahlen wenn ich nur die Komandos benutze?

Also nach der alten interpretation von 2004 von "myssql AB" musst du sogar zahlen wenn du nur mit dem Serverconnectest und selbst kein bisschen von deren Quellcode auslieferst oder benutzt... die Legen das so aus wenn der Server unter GPL betrieben wird...das ist aber ihre gaaaanz eigene Auslegung der GPL...

Wird der Server Komerziel betrieben, kannst du dich auch zu dem Server verbinden wenn du Non GPL software vertreibst.

Nutzt du die libmysql.dll....kannst du dich erhängen...musst du dein Programm als GPL vertreiben oder
lizenzkosten zahlen.

Wenn auf deinem rechner (Windows; System32; SystemWOW64) keine libmysql.dll existiert dann benutzt du evtl. komponenten die das alleine machen...eigentlich wärest du damit aus dem schneider.

Allerdings ist eben noch die beknackte MySQL-Server Geschichte da... wo die sich schon 2004 nicht ganz sicherwaren ob das gut geht.

PS. Firebird ftw. es ist wirklich einfach.

DelTurbo 20. Aug 2011 11:02

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Ohje, wasn das? Sowas schreckt ja richtig ab. Muss ich denen auch meinen letzten Stuhlgang schicken?

Ne, also sowas blödes hab ich noch nie gehört. Naja, sollen sie machen. Toll finde ich so ein vorgehen allerdings nicht, weil wenn man so im Internet guckt, immer kostenlos da steht.

Zitat:

Zitat von QuickAndDirty (Beitrag 1118245)
PS. Firebird ftw. es ist wirklich einfach.

Das werde mir dann mal ansehen, wenn ich mal vorhabe etwas zu veröffentlichen. Ich danke dir.

EDIT:
Zitat:

Zitat von QuickAndDirty (Beitrag 1118245)
Nutzt du die libmysql.dll....kannst du dich erhängen...musst du dein Programm als GPL vertreiben oder
lizenzkosten zahlen.

Wenn auf deinem rechner (Windows; System32; SystemWOW64) keine libmysql.dll existiert dann benutzt du evtl. komponenten die das alleine machen...eigentlich wärest du damit aus dem schneider.

Die ist nicht da.

idefix2 21. Aug 2011 13:04

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Das werde mir dann mal ansehen, wenn ich mal vorhabe etwas zu veröffentlichen. Ich danke dir.
Besser ist es, das schon vorher zu berücksichtigen. Die Unterschiede zwischen den verschiedenen SQL Versionen sind beträchtlich, es ist nicht so, dass man ganz einfach statt einer SQL Datenbank eine andere verwenden kann. Noch dazu hat jede Datenbank Features, die sehr praktisch sind und die man einsetzen will, wenn sie schon verfügbar sind, die über den SQL Standard hianusgehen. Willst Du einen anderen SQL Server nehmen, musst Du dann plötzlich das halbe Programm neu schreiben.

Das heimtückische Lizenzmodell vom MySQL hat mich sehr rasch davon abgehalten, mich mit der Datenbank weiter auseinanderzusetzen. Da ist mir ein ehrliches kommerzielles Geschäftmodell um Häuser lieber als diese Pseudofreie Software. Das ist ja so, wie wenn die Linux Leute plötzlich auf die Idee kommen würden, dass auf einem Linux System nur Open Source Software eingesetzt werden darf, andernfalls für das Betriebssystem Lizenzgebühren fällig würden.

DelTurbo 21. Aug 2011 15:10

AW: Warum ist sqlite sooo langsam? Sollte man wechseln?
 
Zitat:

Zitat von idefix2 (Beitrag 1118429)
Das ist ja so, wie wenn die Linux Leute plötzlich auf die Idee kommen würden, dass auf einem Linux System nur Open Source Software eingesetzt werden darf, andernfalls für das Betriebssystem Lizenzgebühren fällig würden.

Richtig. Stell mal vor das wäre so. Dann müsste z.b. auch vmware alles offenlegen.... Zumal man ja auch bedenken musss, das bestimmt 95% der leute garnix damit anzufangen wüssten.

Für mein kleines "Hobbyprojekt" bleibe ich erstmal bei SqLite3.

Vielen dank nochmal an alle


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr.
Seite 1 von 2  1 2      

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