Performance der Kachel-Cache QVMDB ist suboptimal bei zunehmender Cache-Grösse

  • Hallo Tom


    Ich habe festgestellt, dass auf QVX Desktop die Performance der Kachel-Cache dbs mit zunehmender Grösse abnimmt.

    Ich habe mir die sqlite db angeschaut und festgestellt, dass es an den Indizes liegt.


    Da ich davon ausgehe, dass der Zugriff auf die qvmdb immer unter Angabe aller drei Koordinaten x, y und z stattfindet, sind die drei bestehenden Indizes nicht optimal.

    Da sqlite bei einer Abfrage höchsten einen Index benutzt, ist der map_z Index mit zunehmender Cache-Grösse irgendwann mal hinderlich.

    Wenn man den Index maptile_z löscht, ist alles viel schneller (da sqlite dann entweder den Index maptile_x oder maptile_y Index braucht, deren Selektivität besser ist).


    Falls QVX doch manchmal nur die z-Koordinate einschränkt, empfehle ich nur einen einzigen, mehrspaltigen Index auf maptiles zu erstellen:

    CREATE INDEX MapTile_ZXY ON MapTile (Z,X,Y);


    Damit kann man die Z-Koordinate abfragen, aber auch alle drei Koordinaten und die Performance stimmt dann immer.


    Gruss

    Uwe


    P.S. eine grosse Cache-Datei liegt zum Testen im geteilten Google-Drive.

    QV 7 auf Lenovo ThinkPad X61 mit Win 7 , QVX auf Win 11, TwoNav und QVM / QVXM auf iPad mini 6 / iPhone 13 mit iOS 17