Jedoch hatten wir Probleme mit den Indizes, die bisher auf der Datenbank global hinterlegt waren, doch nun bei den FDQuerys einzeln angelegt werden müssen.
Ist das wirklich notwendig oder nur ein "Hinweis" an die Controls das es hier Indexe gibt die verwendbar sind.
Des Weiteren ist uns ein weiteres Problem mit großen Datenmengen aufgefallen. Hierfür soll man ja
RowSetSize und
fmOnDemand benutzen.
Sobald man eine zweite FDQuery öffnet, wird jedoch bei der ersten FDQuery (RowSetSize:=50,Mode:=fmOnDemand) in jedem Fall ein FetchAll ausgeführt.
Das Problem ist
hier näher beschrieben.
Das liegt wie geschrieben an
MySQL. Es ist auch sinnvoll sich vom Serverseitgen Curser zu lösen und nur Clientseitige DBs zu verwenden und Datenmengen wenn nötig/sinnvoll auf Sinnvolle Datenmengen zu beschränken. Du kannst zwar "einfach" mit Serverseiten Cursern Mio.-Datensätze "bearbeiten" (im Grid halten), aber hier hat dann das
DBMS einige zu werkeln diese Datenmengen auf dem Server vorzuhalten. Stell dir vor dein Programm nutzen 1000 User um jeweils 100 Mio. Datensätze im Grid darzustellen. Da dürftest du dann schon ein ziemliches Performance-Problem bekommen.
Welche Datenbank würdet ihr empfehlen? Und da einige von euch die
BDE bereits verlassen haben, welche Datenbank wird von euch verwendet?
Am besten das was der Kunde schon im Einsatz hat. Damit seit ihr aus der Nummer
DB-Administration und Backupkonzept mehr oder minder raus als wenn ihr einem Kunden der MS-
SQL-Server im Einsatz hat sagen müsst das er jetzt auch noch ein Oracle/
MySQL/... installieren und administrieren muss.
Außerdem habe ich von einem Lizenzproblem mit
MySQL gelesen. Hat jemand von euch damit schon Erfahrung gesammelt?
Sollt ihr nur
MySQL und/oder die libmysql.dll im Einsatz haben, so muss der Kunde die Installation lizensieren.
Nur wenn ihr mehrer
DBMS unterstützt und auch keine
DLL von
MySQL im Einsatz habt seit ihr außen vor.
Windows Vista - Eine neue Erfahrung in Fehlern.