xsharp.eu • Ist der XBase-Datenbanktreiber unter XSharp.Core bereits fertiggestellt? - Page 3
Page 3 of 3

Ist der XBase-Datenbanktreiber unter XSharp.Core bereits fertiggestellt?

Posted: Mon Jul 05, 2021 10:06 am
by ic2
Hello,
Chris wrote:Thanks a lot for the sample Jörg, I see what the problem is, it has to do with the number of fields in the filter expression (yours has more than 10). Vulcan has a very small impact on performance as the number of fields increases, while in X# for some reason the impact is very heavy, in geometric progression. Will create a small sample for Robert to have a look into.
I think this reply from Chris shows why the X# development team stands head and shoulders above other and often larger teams. I am too mainly concerned about the speed of using X# in VS, the Intellisense and how a program executes (performance, working) compared to the Vulcan or VO version.We get closer and closer to a version where there are no important drawbacks in these fields. Which does not mean a very specific situation could cause an issue.

I think it's remarkable that 3 days after posting a question the problem is acknowledged and identified, with a good chance it is solved as soon as the next version.

Dick

Ist der XBase-Datenbanktreiber unter XSharp.Core bereits fertiggestellt?

Posted: Thu Jul 08, 2021 2:53 pm
by comitas2
Chris,
die Hinweise auf zu viele Index-Felder haben mich eine Messreihe zwischen Vulcan.exe und entsprechender XSharp.exe (mit dem Beispielcode den Chris bekam) machen lassen. Dabei habe ich die Indexfelder "KNR+TNR+SNR+LFDNR+LART+LLAB+LPGE+LVNR+LFN" und "LFN+LART+LLAB+LPGE+LVNR“ mit jedem Compiler-Lauf um ein Feld verringert bis am Ende nur noch „KNR“ und „LFN“ übrig waren und zu guter Letzt mit nur noch ein Index und ein Feld „KNR“ verblieben. Hier die Messreihe (DBF ist mit ca. 900000Datensätzen 70MB groß):

9Felder 8 7 6 5 4 3 2 1 1
+2Felder +4 +3 +2 +1 +1 +1 +1 +1 +0

Vulcan 15s 10s 9s 8s 7s 7s 7s 6s 6s 3s

XSharp 9‘ 55 8’42 7’02 6’32 6’04 5’37 4’47 4’34 4’22 2‘35

Faktor 1:40 1:52 1:46 1:49 1:52 1:48 1:41 1:45 1:43 1:50

(mit Stoppuhr ermittelt, sicher mit ein paar Ungenauigkeiten)

Selbst wenn XSharp nur ein Index mit nur einem Feld erzeugen soll, bleibt es mindestens 40mal langsamer als Vulcan. Vielleicht ist ja Chris bereits einer Lösung auf der Spur!?
Leider können die Anwender nicht auf Indexdateien verzichten und sie müssen auch ab und zu mal erneuert werden…
Gruß Jörg

Ist der XBase-Datenbanktreiber unter XSharp.Core bereits fertiggestellt?

Posted: Thu Jul 08, 2021 2:57 pm
by robert
Jörg,

We are aware of this issue.
The problem is not so much in the number of fields but in the size of the index keys and the fact that these keys have very little trailing spaces. As a result the indexes with large keys generate many more index pages and there seems to be a problem with either the insertion of the keys in the pages or with the page writing.

Robert

Ist der XBase-Datenbanktreiber unter XSharp.Core bereits fertiggestellt?

Posted: Thu Jul 08, 2021 3:40 pm
by Chris
Hi Jörg,

That's not what we saw, for just one field the difference between X# and vulcan seems to be small. But indeed, as fields increase, the speed difference increases more and more.

Btw, here's the page of the logged issue, it includes some simple test code for reproducing the problem:

https://github.com/X-Sharp/XSharpPublic/issues/711

Ist der XBase-Datenbanktreiber unter XSharp.Core bereits fertiggestellt?

Posted: Thu Jul 08, 2021 4:30 pm
by wriedmann
Hallo Jörg,
nachdem das jetzt als Ticket angelegt ist und nachvollziehbar ist, kannst Du davon ausgehen, dass das früher oder später gelöst wird.
Wolfgang

Ist der XBase-Datenbanktreiber unter XSharp.Core bereits fertiggestellt?

Posted: Tue Jul 20, 2021 1:54 pm
by comitas2
Hallo Entwicklerteam,
das ist schön, dass das Problem jetzt als Ticket angelegt und auch nachvollziehbar ist.
Bis zu einer Lösung werde ich die Umstellung auf XSharp erstmal langsamer angehen und mich mit dem ReportPro2 für XSharp beschäftigen.
Gruß Jörg