ich habe ein model das mir die daten aus einer sqlite-datenbank holt und bereitstellt. ich öffne die datenbank in der init-methode des models und schließe sie in der dealloc-methode des models wieder. ist das so richtig oder sollte ich die datenbank bei jeden lese-/schreibvorgang öffnen und nach abschluss wieder schließen.
MVC Frage
-
-
Kannst Du so lassen, wie Du es gemacht hast. Ständiges Öffnen und Schließen bringt Dir keine Vorteile. Bei Datenbankservern (Postgres, MySQL usw.) ist das sogar eher schädlich, weil Du damit unnötigen Overhead erzeugst.„Meine Komplikation hatte eine Komplikation.“
-
Also das ist ja so ein bisschen ein RAII-Konzept. Eigentlich macht man so etwas in Cocoa eher explizit, aber es geht auch sicher so. Dass man aber bei ARC noch ein -dealloc braucht bzw. bei GC ein -finalize, zeigt ein wenig, dass das "zu automatisch" ist, zwei Fragen (Speicherverwaltung und Ressourceverwendung) vermischt. Aber kein Problem damit.Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"? -
macmoonshine schrieb:
Kannst Du so lassen, wie Du es gemacht hast. Ständiges Öffnen und Schließen bringt Dir keine Vorteile. Bei Datenbankservern (Postgres, MySQL usw.) ist das sogar eher schädlich, weil Du damit unnötigen Overhead erzeugst.
Sehe ich auch so. Und dennoch ist uns etwas Merkwürdiges über den Weg gelaufen: Core Data öffnet und schließt den Store ständig. Wir haben auch keine Ahnung, warum das geschieht.Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"? -
Das liegt wahrscheinlich daran, dass die sqlite lib nur einen WriteOpen zuläßt. Sprich, wenn ein Task die DB mit Write Access öffnet ist sie locked für alle anderen Tasks.
Darüber bin ich mal böse gestolpert. Deswegen mache ich Read/Write Opens bei sqlite nur noch solange sie auch benötigt werden und schließe sie dann sofort wieder und wenn es eben geht benutze ich nur ReadOnly opens.
Gruß
Claus2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen
-