ca 50000 Einträge, die Datenbankdatei hat ca 110 Mb und belegt im Speicher ca 180 Mb.
Wenn ich den Code mehrmals durchlaufe bleiben zwischen 3 - 10 Mb im Speicher zusätzlich belegt.
Ein
Du solltest dir da überlegen ob es nötig ist dir alle Datensätze zu holen.
Wenn du diese nicht unbedingt brauchst, solltest du mal probieren die while Schleife rauszunehmen...[/code]
Naja das Model ist ja nur das Modell, um es anzuzeigen brauchst du noch einen View, du verstehst(mit view->setModel(model); ).
die fetchMore() Schleife holt sich die ganze Tabelle in den Speicher, du solltest da überdenken ob das wirklich nötig ist! Ich schätze mal dass du dadurch deinen Speicher volllaufen lässt.
Wie oft führst denn diesen code in deinem Programm aus? und in welchen Zusammenhang(ich frage mich ob du die Datenbank immer wieder neu erstellst)?
Angezeigt wird es in einem QTableView.
Aber das Problem tritt auch auf ohne das ich das QSqlQueryModel keinem View zuordne.
Eigentlich passiert so eine Abfrage selten, ist aber halt nicht ausgeschlossen.
Außerdem summiert sich der Speicherbedarf nach einiger Zeit dann doch beträchtlich, selbst wenn die Ergebnisse nicht groß sind.
Warum ich das so mache?
Die Datenbank wird mit einer Vielzahl an unterschiedlichen SQL Abfragen durchsucht und soll nur so lange geöffnet sein wie unbedingt notwendig.